This commit is contained in:
Alexey Polyakov
2026-05-06 15:35:23 +03:00
parent 613e1b96cd
commit 389a08ebce
4 changed files with 19 additions and 10 deletions

View File

@@ -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("Все задачи завершены, выходим")

View File

@@ -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()

View File

@@ -239,5 +239,9 @@ class TamTamMobile:
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()

View File

@@ -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: