pointapi/main.py
2021-06-09 19:13:02 +08:00

54 lines
1.3 KiB
Python

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)