From 389a08ebce431e599832e4983dc13d09bac23a26 Mon Sep 17 00:00:00 2001 From: Alexey Polyakov Date: Wed, 6 May 2026 15:35:23 +0300 Subject: [PATCH] nothing --- src/main.py | 11 ++++++----- src/oneme/socket.py | 8 ++++++-- src/tamtam/socket.py | 8 ++++++-- src/telegrambot/bot.py | 2 +- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/main.py b/src/main.py index 5051507..7faa1f7 100644 --- a/src/main.py +++ b/src/main.py @@ -177,13 +177,11 @@ async def main(): api["telegram_bot"] = controllers["telegrambot"] - coros = [controller.launch(api) for controller in controllers.values()] - running_tasks = [asyncio.create_task(coro) for coro in coros] - - # Обработчик sigterm loop = asyncio.get_running_loop() + running_tasks = [] def _shutdown(sig): + logging.info(f"Получен сигнал {sig}, завершаем все задачи...") for task in running_tasks: task.cancel() @@ -191,10 +189,13 @@ async def main(): for sig in (signal.SIGTERM, signal.SIGINT): loop.add_signal_handler(sig, _shutdown, sig) + coros = [controller.launch(api) for controller in controllers.values()] + running_tasks.extend(asyncio.create_task(coro) for coro in coros) + # Запускаем контроллеры try: await asyncio.gather(*running_tasks) - except asyncio.CancelledError: + except (asyncio.CancelledError, Exception): logging.info("Все задачи завершены, выходим") diff --git a/src/oneme/socket.py b/src/oneme/socket.py index d93f328..67569e3 100644 --- a/src/oneme/socket.py +++ b/src/oneme/socket.py @@ -431,5 +431,9 @@ class OnemeMobile: self.logger.info(f"Сокет запущен на порту {self.port}") - async with self.server: - await self.server.serve_forever() + try: + async with self.server: + await self.server.serve_forever() + except asyncio.CancelledError: + self.server.close() + await self.server.wait_closed() diff --git a/src/tamtam/socket.py b/src/tamtam/socket.py index 459b4a3..fc37476 100644 --- a/src/tamtam/socket.py +++ b/src/tamtam/socket.py @@ -239,5 +239,9 @@ class TamTamMobile: self.logger.info(f"Сокет запущен на порту {self.port}") - async with self.server: - await self.server.serve_forever() \ No newline at end of file + try: + async with self.server: + await self.server.serve_forever() + except asyncio.CancelledError: + self.server.close() + await self.server.wait_closed() \ No newline at end of file diff --git a/src/telegrambot/bot.py b/src/telegrambot/bot.py index ca6db32..b8c02b4 100644 --- a/src/telegrambot/bot.py +++ b/src/telegrambot/bot.py @@ -131,7 +131,7 @@ class TelegramBot: async def start(self): if self.enabled: try: - await self.dp.start_polling(self.bot) + await self.dp.start_polling(self.bot, handle_signals=False) except Exception as e: self.logger.error(f"Ошибка запуска Telegram бота: {e}") else: