From c3aefc97de7e81482dd396ebe9922e0aa0681aa4 Mon Sep 17 00:00:00 2001 From: marsal Date: Fri, 10 Jul 2026 12:19:14 +0800 Subject: [PATCH] feat(main): start and stop event publisher worker --- channel-service/app/main.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/channel-service/app/main.py b/channel-service/app/main.py index f4d7aaf..643b37a 100644 --- a/channel-service/app/main.py +++ b/channel-service/app/main.py @@ -1,9 +1,30 @@ +from contextlib import asynccontextmanager + from fastapi import FastAPI from app.api import health, monitor, wechat_personal +from app.clients.mci_server_client import MciServerClient 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(wechat_personal.router)