diff --git a/bot.py b/bot.py index ab377cd..89e954d 100644 --- a/bot.py +++ b/bot.py @@ -115,13 +115,19 @@ class BotRunner: self._on_shutdown() def run(self, token: str) -> None: - """Запустить бота с graceful shutdown.""" + """Запустить бота с graceful shutdown. + + Graceful shutdown обеспечивается: + - discord.py on_shutdown событие для остановки планировщика + - async with self.bot (context manager) для graceful disconnect + - KeyboardInterrupt (Ctrl+C) на POSIX + - SIGTERM обрабатывается через entrypoint-скрипт (Docker/K8s) + """ logger.info("Запуск бота...") async def main() -> None: try: async with self.bot: - # Регистрируем on_shutdown внутри контекста бота self.bot.add_listener(self._on_shutdown_async, "on_shutdown") await self.bot.start(token, reconnect=True) except discord.LoginFailure as e: