feat(scheduler): implement scheduler service for background tasks and credit refills; add endpoints for admin control

This commit is contained in:
JSC
2025-07-02 13:39:17 +02:00
parent 703212656f
commit 1b597f4047
6 changed files with 304 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ from app.services.decorators import (
require_credits,
require_role,
)
from app.services.scheduler_service import scheduler_service
bp = Blueprint("main", __name__)
@@ -84,3 +85,19 @@ def expensive_operation() -> dict[str, str]:
"user": user["email"],
"operation_cost": 10,
}
@bp.route("/admin/scheduler/status")
@require_auth
@require_role("admin")
def scheduler_status() -> dict:
"""Get scheduler status (admin only)."""
return scheduler_service.get_scheduler_status()
@bp.route("/admin/credits/refill", methods=["POST"])
@require_auth
@require_role("admin")
def manual_credit_refill() -> dict:
"""Manually trigger credit refill for all users (admin only)."""
return scheduler_service.trigger_credit_refill_now()