feat(main): start and stop event publisher worker
This commit is contained in:
@@ -1,9 +1,30 @@
|
|||||||
|
from contextlib import asynccontextmanager
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
|
||||||
from app.api import health, monitor, wechat_personal
|
from app.api import health, monitor, wechat_personal
|
||||||
|
from app.clients.mci_server_client import MciServerClient
|
||||||
from app.config import settings
|
from app.config import settings
|
||||||
|
from app.repositories.event_store import event_store
|
||||||
|
from app.services.event_publisher import EventPublisher
|
||||||
|
|
||||||
app = FastAPI(title=settings.app_name, debug=settings.debug)
|
|
||||||
|
@asynccontextmanager
|
||||||
|
async def lifespan(app: FastAPI):
|
||||||
|
client = MciServerClient(settings.mci_server_url)
|
||||||
|
publisher = EventPublisher(
|
||||||
|
event_store,
|
||||||
|
client,
|
||||||
|
max_retry=settings.max_retry,
|
||||||
|
base_delay_seconds=settings.base_retry_delay_seconds,
|
||||||
|
interval_seconds=settings.event_publish_interval_seconds,
|
||||||
|
)
|
||||||
|
publisher.start()
|
||||||
|
yield
|
||||||
|
await publisher.stop()
|
||||||
|
|
||||||
|
|
||||||
|
app = FastAPI(title=settings.app_name, debug=settings.debug, lifespan=lifespan)
|
||||||
|
|
||||||
app.include_router(health.router)
|
app.include_router(health.router)
|
||||||
app.include_router(wechat_personal.router)
|
app.include_router(wechat_personal.router)
|
||||||
|
|||||||
Reference in New Issue
Block a user