fix(avatar): prevent takeover replies blocking across chats
This commit is contained in:
@@ -143,14 +143,28 @@ def on_startup():
|
||||
poll_interval = max(0.5, float(os.getenv("BOXIM_POLL_INTERVAL_SECONDS", "1")))
|
||||
takeover_scheduler = AsyncIOScheduler()
|
||||
takeover_scheduler.add_job(
|
||||
takeover_service.poll_and_process_messages,
|
||||
takeover_service.poll_messages,
|
||||
trigger=IntervalTrigger(seconds=poll_interval),
|
||||
id="takeover_message_poll",
|
||||
max_instances=1,
|
||||
coalesce=True,
|
||||
)
|
||||
process_interval = max(
|
||||
0.25, float(os.getenv("TAKEOVER_PROCESS_INTERVAL_SECONDS", "0.5"))
|
||||
)
|
||||
takeover_scheduler.add_job(
|
||||
takeover_service.process_reply_tasks,
|
||||
trigger=IntervalTrigger(seconds=process_interval),
|
||||
id="takeover_reply_process",
|
||||
max_instances=1,
|
||||
coalesce=True,
|
||||
)
|
||||
takeover_scheduler.start()
|
||||
logger.info("BOXIM takeover scheduler started (interval=%ss)", poll_interval)
|
||||
logger.info(
|
||||
"BOXIM takeover scheduler started (poll=%ss, process=%ss)",
|
||||
poll_interval,
|
||||
process_interval,
|
||||
)
|
||||
except Exception as e:
|
||||
stop_takeover_scheduler()
|
||||
logger.warning(f"Failed to initialize takeover scheduler, app will continue without it: {e}")
|
||||
|
||||
Reference in New Issue
Block a user