add fix
This commit is contained in:
parent
5b52f55a1a
commit
52b502dc56
@ -1,12 +1,8 @@
|
||||
from fastapi import FastAPI
|
||||
|
||||
from faststream.rabbit import RabbitBroker, RabbitExchange, ExchangeType, QueueType, RabbitQueue
|
||||
from faststream.rabbit.fastapi import RabbitRouter, Logger
|
||||
from src.core.settings.base import settings
|
||||
|
||||
rabbitmq_router = RabbitRouter(
|
||||
url=settings.RABBIT.URL,
|
||||
)
|
||||
|
||||
broker = RabbitBroker(
|
||||
url=settings.RABBIT.URL,
|
||||
@ -38,8 +34,7 @@ success_gemini_subscriber = broker.subscriber(
|
||||
)
|
||||
|
||||
|
||||
@rabbitmq_router.after_startup
|
||||
async def init_queue_and_publisher(app: FastAPI):
|
||||
async def init_queue_and_publisher():
|
||||
await broker.declare_exchange(base_exchange)
|
||||
await broker.declare_queue(base_queue)
|
||||
await broker.declare_queue(success_queue)
|
||||
|
@ -1,15 +1,16 @@
|
||||
from contextlib import asynccontextmanager
|
||||
|
||||
from fastapi import FastAPI
|
||||
|
||||
from pyrogram import Client, filters, idle
|
||||
from pyrogram.handlers import MessageHandler
|
||||
|
||||
from src.core.settings.base import settings
|
||||
from src.core.tg_service.messages_handler import message_listener
|
||||
from src.core.rabbitmq.connect import broker, init_queue_and_publisher, rabbitmq_router
|
||||
import uvicorn
|
||||
import asyncio
|
||||
from src.core.rabbitmq.connect import broker, init_queue_and_publisher
|
||||
|
||||
# Инициализация Pyrogram клиента
|
||||
tg_client = Client(
|
||||
|
||||
tg_app = Client(
|
||||
name=settings.ACCOUNT.NAME,
|
||||
api_id=settings.ACCOUNT.API_ID,
|
||||
api_hash=settings.ACCOUNT.API_HASH,
|
||||
@ -17,35 +18,18 @@ tg_client = Client(
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
await tg_client.start()
|
||||
async def lifespan(fastapi_app: FastAPI):
|
||||
await tg_app.start()
|
||||
await broker.start()
|
||||
await init_queue_and_publisher(app)
|
||||
await init_queue_and_publisher()
|
||||
await idle()
|
||||
|
||||
yield
|
||||
|
||||
await tg_client.stop()
|
||||
await broker.close()
|
||||
await tg_app.stop()
|
||||
|
||||
|
||||
# Создание FastAPI приложения с кастомным lifespan
|
||||
fastapi_app = FastAPI(lifespan=lifespan)
|
||||
fastapi_app.include_router(rabbitmq_router)
|
||||
|
||||
# Добавление обработчика для Telegram
|
||||
tg_client.add_handler(MessageHandler(
|
||||
tg_app.add_handler(MessageHandler(
|
||||
callback=message_listener,
|
||||
filters=filters.all
|
||||
))
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Запуск FastAPI и Pyrogram в одном event loop
|
||||
config = uvicorn.Config(
|
||||
fastapi_app,
|
||||
host="0.0.0.0",
|
||||
port=8000,
|
||||
loop="asyncio"
|
||||
)
|
||||
server = uvicorn.Server(config)
|
||||
asyncio.run(server.serve())
|
||||
app = FastAPI(lifespan=lifespan)
|
||||
|
Loading…
x
Reference in New Issue
Block a user