import uvicorn from aioredis import create_redis_pool from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from output import output_factory from handler_data import data_factory from routers import point from settings import settings app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=['*'], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) def register_redis(app: FastAPI = app) -> 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_output(app: FastAPI = app) -> None: @app.on_event('startup') def startup_event(): app.state.output_factory = output_factory('kafka') def register_handler_data(app: FastAPI = app) -> None: @app.on_event('startup') def startup_event(): app.state.data_factory = data_factory('ta') app.include_router(point.router, prefix='/v1') register_redis() register_output() register_handler_data() if __name__ == '__main__': uvicorn.run(app='main:app', host="0.0.0.0", port=6789, reload=True, debug=True)