feat: Add scheduler for daily user credits recharge

This commit is contained in:
JSC
2025-08-11 00:30:29 +02:00
parent bdeb00d562
commit d1bf2fe0a4
8 changed files with 698 additions and 109 deletions

View File

@@ -12,6 +12,7 @@ from app.core.logging import get_logger, setup_logging
from app.middleware.logging import LoggingMiddleware
from app.services.extraction_processor import extraction_processor
from app.services.player import initialize_player_service, shutdown_player_service
from app.services.scheduler import SchedulerService
from app.services.socket import socket_manager
@@ -33,10 +34,19 @@ async def lifespan(_app: FastAPI) -> AsyncGenerator[None, None]:
await initialize_player_service(get_session_factory())
logger.info("Player service started")
# Start the scheduler service
scheduler_service = SchedulerService(get_session_factory())
await scheduler_service.start()
logger.info("Scheduler service started")
yield
logger.info("Shutting down application")
# Stop the scheduler service
await scheduler_service.stop()
logger.info("Scheduler service stopped")
# Stop the player service
await shutdown_player_service()
logger.info("Player service stopped")
@@ -54,9 +64,9 @@ def create_app() -> FastAPI:
version="1.0.0",
lifespan=lifespan,
# Configure docs URLs for reverse proxy setup
docs_url="/api/docs", # Swagger UI at /api/docs
redoc_url="/api/redoc", # ReDoc at /api/redoc
openapi_url="/api/openapi.json", # OpenAPI schema at /api/openapi.json
docs_url="/api/docs", # Swagger UI at /api/docs
redoc_url="/api/redoc", # ReDoc at /api/redoc
openapi_url="/api/openapi.json", # OpenAPI schema at /api/openapi.json
)
# Add CORS middleware