初始化
This commit is contained in:
58
main.py
Normal file
58
main.py
Normal file
@@ -0,0 +1,58 @@
|
||||
import logging
|
||||
|
||||
import models
|
||||
from contextlib import asynccontextmanager
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from sqlmodel import SQLModel
|
||||
from core.db import engine
|
||||
from core.config.settings import settings
|
||||
from api.scheduler_api import scheduler_router
|
||||
from api.lottery_api import lottery_router
|
||||
from core.task.dlt_scheduler import scheduler
|
||||
|
||||
# 配置日志
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# lifespan生命周期
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
# ========== 启动时执行 ==========
|
||||
logger.info("服务启动,开始创建数据表")
|
||||
# 同步建表
|
||||
SQLModel.metadata.create_all(engine)
|
||||
|
||||
# 启动定时调度器
|
||||
scheduler.start()
|
||||
|
||||
yield # 此处交出控制权,服务开始运行
|
||||
# ========== 关闭时执行 ==========
|
||||
logger.info("服务关闭,释放资源")
|
||||
scheduler.shutdown()
|
||||
|
||||
app = FastAPI(lifespan=lifespan)
|
||||
app.include_router(scheduler_router)
|
||||
app.include_router(lottery_router)
|
||||
|
||||
app.add_middleware(
|
||||
CORSMiddleware, # type: ignore[arg-type]
|
||||
allow_origins=settings.ALLOWED_ORIGINS,
|
||||
allow_credentials=True,
|
||||
allow_methods=settings.ALLOWED_METHODS,
|
||||
allow_headers=settings.ALLOWED_HEADERS,
|
||||
)
|
||||
|
||||
@app.get("/")
|
||||
def main():
|
||||
return {"message": "Hello World"}
|
||||
|
||||
|
||||
# 启动服务 --> uvicorn: Python中的轻量级web服务器
|
||||
if __name__ == "__main__":
|
||||
import uvicorn
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
Reference in New Issue
Block a user