import uvicorn from aioredis import create_redis_pool from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from routers import point from settings import settings from utils.ta_sdk import TGAnalytics, ToKafka app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=['*'], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) def register_redis(app: FastAPI) -> None: @app.on_event('startup') async def startup_event(): app.state.redis = await create_redis_pool(**settings.REDIS_CONF) @app.on_event('shutdown') async def shutdown_event(): app.state.redis.close() await app.state.redis.wait_closed() def register_ta(app: FastAPI) -> None: @app.on_event('startup') def startup_event(): app.state.ta = TGAnalytics(ToKafka(settings.KAFKA_CONF)) app.include_router(point.router, prefix='/v1') register_redis(app) register_ta(app) if __name__ == '__main__': uvicorn.run(app='main:app', host="0.0.0.0", port=6666, reload=True, debug=True)