update-temp-online

Оновлення буфера онлайн-сесій

src/golden/workers/bull/queue/updateTempOnline.queue.ts

Кожні 10 хвилин (cron */10 * * * *).

Що відбувається

Послідовно виконує:

  • Чистить вчорашні рядки з golden_online_time_temp — там тримається тільки поточний день
  • Бере історію chat-sender invites (golden_history_sending_messages) за необчислений період — інкрементально через cursor lastUpdateTempOnline
  • Онлайн 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 не використовуються.