fix: добавлено закрытие requests.Session при graceful shutdown бота
This commit is contained in:
parent
1fa6deaf67
commit
c5c6a51cd2
6
bot.py
6
bot.py
@ -175,10 +175,14 @@ class BotRunner:
|
||||
pass # Бот не может писать в канал — игнорируем
|
||||
|
||||
def _on_shutdown(self) -> None:
|
||||
"""Остановить планировщик при завершении работы бота."""
|
||||
"""Остановить планировщик и закрыть сетевые сессии."""
|
||||
if self.scheduler:
|
||||
self.scheduler.stop()
|
||||
logger.info("Планировщик остановлен")
|
||||
from utils import close_all_sessions
|
||||
|
||||
close_all_sessions()
|
||||
logger.info("Сетевые сессии закрыты")
|
||||
|
||||
async def _on_shutdown_async(self) -> None:
|
||||
"""Асинхронный хук завершения (discord.py on_shutdown)."""
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
from .pogoda import (
|
||||
API_URL_WEATHER,
|
||||
_session as _weather_session,
|
||||
fetch_weather,
|
||||
fetch_open_meteo,
|
||||
format_weather_data_for_console,
|
||||
@ -8,14 +9,18 @@ from .pogoda import (
|
||||
translate_weather,
|
||||
wmo_to_russian,
|
||||
)
|
||||
from .news import (
|
||||
from .news import ( # noqa: E402
|
||||
_session as _news_session,
|
||||
RSS_URL_ARTICLES,
|
||||
RSS_URL_POSTS,
|
||||
fetch_rss,
|
||||
format_articles,
|
||||
truncate_title,
|
||||
)
|
||||
from .cat import fetch_cat
|
||||
from .cat import ( # noqa: E402
|
||||
_session as _cat_session,
|
||||
fetch_cat,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
# Погода
|
||||
@ -35,4 +40,20 @@ __all__ = [
|
||||
"truncate_title",
|
||||
# Котики
|
||||
"fetch_cat",
|
||||
# Lifecycle
|
||||
"close_all_sessions",
|
||||
]
|
||||
|
||||
|
||||
def close_all_sessions() -> None:
|
||||
"""Закрыть все requests.Session для освобождения сокетов."""
|
||||
for session in (
|
||||
_weather_session,
|
||||
_news_session,
|
||||
_cat_session,
|
||||
):
|
||||
try:
|
||||
session.close()
|
||||
except Exception:
|
||||
pass # Cleanup — игнорируем ошибки
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user