Исправление: graceful shutdown через on_shutdown + context manager (SIGTERM на Docker/K8s)
This commit is contained in:
parent
f6f5b96563
commit
77c5f5a3a6
10
bot.py
10
bot.py
@ -115,13 +115,19 @@ class BotRunner:
|
|||||||
self._on_shutdown()
|
self._on_shutdown()
|
||||||
|
|
||||||
def run(self, token: str) -> None:
|
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("Запуск бота...")
|
logger.info("Запуск бота...")
|
||||||
|
|
||||||
async def main() -> None:
|
async def main() -> None:
|
||||||
try:
|
try:
|
||||||
async with self.bot:
|
async with self.bot:
|
||||||
# Регистрируем on_shutdown внутри контекста бота
|
|
||||||
self.bot.add_listener(self._on_shutdown_async, "on_shutdown")
|
self.bot.add_listener(self._on_shutdown_async, "on_shutdown")
|
||||||
await self.bot.start(token, reconnect=True)
|
await self.bot.start(token, reconnect=True)
|
||||||
except discord.LoginFailure as e:
|
except discord.LoginFailure as e:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user