Оновлення буфера онлайн-сесій
src/golden/workers/bull/queue/updateTempOnline.queue.ts
Кожні 10 хвилин (cron */10 * * * *).
Що відбувається
Послідовно виконує:
- Чистить вчорашні рядки з
golden_online_time_temp— там тримається тільки поточний день - Бере історію chat-sender invites (
golden_history_sending_messages) за необчислений період — інкрементально через cursorlastUpdateTempOnline - Онлайн TU по сендеру — для кожної TU цього оператора через
calculateOnline()/calculateSessions()рахує скільки часу TU була “активна” за sender-сигналами + лічильникиamountContact/amountAgencyза типом invite. Це основний результат воркера. - Онлайн оператора (агрегат) — той самий розрахунок але по всіх invites оператора. 🗑️ Можна прибрати — це не реальний heartbeat і не login/logout, а онлайн виведений зі sender-активності; не консумиться у нормальному UI.
TODO: перевірити чи десь зчитується і прибрати. - Записує усе в
golden_online_time_tempчерез upsert (один документ наoperator+date) - Окремою фазою —
archive(): батчами по 1000 переносить таски що маютьanswerабоcanceledзgolden_taskуgolden_task_archive
Помилка archive() логується окремо — не зупиняє основну фазу.
Моніторинг
Лише logger.error() через Winston. StackMonitoring і TG не використовуються.