Files
Solo_bot/core/tasks/lifecycle.py
T
2026-03-19 21:44:46 +03:00

37 lines
1.1 KiB
Python

import os
from core.tasks.periodic_manager import periodic_task_manager
from core.tasks.registry import register_periodic_tasks
from hooks.hooks import register_hook
from logger import logger
def _should_start_manager() -> bool:
if os.environ.get("NOTIFICATION_WORKER", "").strip() == "1":
return True
if os.environ.get("NOTIFICATION_WORKER_SEPARATE", "").strip() == "1":
return False
return True
async def ensure_periodic_task_manager_started(bot, sessionmaker) -> None:
register_periodic_tasks()
if not _should_start_manager():
logger.info("[PeriodicManager] Пропуск старта в текущем процессе")
return
await periodic_task_manager.start(bot, sessionmaker)
async def ensure_periodic_task_manager_stopped() -> None:
await periodic_task_manager.stop()
@register_hook("startup")
async def start_periodic_task_manager(bot, sessionmaker, **_kwargs):
await ensure_periodic_task_manager_started(bot, sessionmaker)
@register_hook("shutdown")
async def stop_periodic_task_manager(**_kwargs):
await ensure_periodic_task_manager_stopped()