feat: воркер связывания placement и post

This commit is contained in:
Artem Tsyrulnikov
2025-12-15 19:32:49 +03:00
parent 71e5a38efc
commit fd51c9ad1f
5 changed files with 141 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from shared import logger
from shared.worker_base import WorkerConfig
from src import deps
from src.adapter.jwt import JWT
from src.adapter.postgres import Postgres
@@ -12,18 +13,21 @@ from src.adapter.telegram_bot import TelegramBot
from src.config import settings
from src.controller.http import api_router
from src.controller.telegram_callback import telegram_callback_router
from src.controller.worker.fetch_placement_post import FetchPlacementPostWorker
from src.usecase import Usecase
@asynccontextmanager
async def lifespan(app: FastAPI) -> AsyncGenerator[None]:
await postgres.connect()
await fetch_placement_post_worker.start()
await telegram.start_polling()
await telegram.set_commands()
yield
await telegram.stop_polling()
await fetch_placement_post_worker.stop()
await postgres.close()
@@ -40,6 +44,8 @@ usecase = Usecase(
)
deps.set_usecase(usecase)
fetch_placement_post_worker = FetchPlacementPostWorker(config=WorkerConfig(INTERVAL_SECONDS=5))
app = FastAPI(
lifespan=lifespan,
version=settings.logger.APP_VERSION,