39 lines
962 B
Python
39 lines
962 B
Python
"""Main FastAPI application entry point."""
|
|
|
|
from core.app import create_app
|
|
from routes import api_router, web_router
|
|
from routes.scheduler import router as scheduler_router
|
|
from core.scheduler import init_scheduler, shutdown_scheduler
|
|
import logging
|
|
|
|
# Create the FastAPI app
|
|
app = create_app()
|
|
|
|
# Get logger
|
|
logger = logging.getLogger("syllabus")
|
|
|
|
# Include routers
|
|
app.include_router(api_router)
|
|
app.include_router(web_router)
|
|
app.include_router(scheduler_router)
|
|
|
|
# Initialize scheduler on startup
|
|
@app.on_event("startup")
|
|
async def startup():
|
|
"""Initialize scheduler on startup."""
|
|
await init_scheduler()
|
|
logger.info("Scheduler started")
|
|
|
|
|
|
@app.on_event("shutdown")
|
|
async def shutdown():
|
|
"""Shutdown scheduler on app shutdown."""
|
|
shutdown_scheduler()
|
|
logger.info("Scheduler stopped")
|
|
|
|
logger.info("Application initialized successfully")
|
|
|
|
if __name__ == "__main__":
|
|
import uvicorn
|
|
uvicorn.run(app, host="0.0.0.0", port=8000)
|