44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
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)
|