Merge pull request #3 from machka-pasla/codex/locate-and-fix-apscheduler-duplicate-notifications

Fix duplicate scheduler instances
This commit is contained in:
Machka Pasla
2025-06-23 20:13:03 +03:00
committed by GitHub
+17 -11
View File
@@ -89,18 +89,24 @@ async def on_startup_configured(dispatcher: Dispatcher):
async_session_factory: sessionmaker = dispatcher["async_session_factory"] async_session_factory: sessionmaker = dispatcher["async_session_factory"]
logging.info("STARTUP: on_startup_configured executing...") logging.info("STARTUP: on_startup_configured executing...")
scheduler = AsyncIOScheduler(timezone="UTC")
try:
await schedule_subscription_notifications(bot, settings, i18n_instance, existing_scheduler: Optional[AsyncIOScheduler] = dispatcher.get("scheduler")
scheduler, panel_service,
async_session_factory) if existing_scheduler and existing_scheduler.running:
scheduler.start() logging.warning(
dispatcher["scheduler"] = scheduler "STARTUP: Scheduler already running, skipping initialization.")
logging.info("STARTUP: APScheduler started.") else:
except Exception as e: scheduler = AsyncIOScheduler(timezone="UTC")
logging.error(f"STARTUP: Failed to start APScheduler: {e}", try:
exc_info=True) await schedule_subscription_notifications(
bot, settings, i18n_instance, scheduler, panel_service,
async_session_factory)
scheduler.start()
dispatcher["scheduler"] = scheduler
logging.info("STARTUP: APScheduler started.")
except Exception as e:
logging.error(
f"STARTUP: Failed to start APScheduler: {e}", exc_info=True)
telegram_webhook_url_to_set = getattr(settings, telegram_webhook_url_to_set = getattr(settings,
'TELEGRAM_WEBHOOK_BASE_URL', None) 'TELEGRAM_WEBHOOK_BASE_URL', None)