update-online-time

Денний онлайн по сендеру

src/golden/workers/bull/queue/update-online-time.worker.ts

Щодня о 00:01 (cron 01 */24 * * *). Durable: 3 спроби з паузою 30 хв, таймаут 1 год.

Захисти

  • Ідемпотентність (in-memory, як у легасі): не частіше ніж раз на пів-доби в межах процесу. Після рестарту лічильник скидається — захист діє тільки поки процес живий.

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

  • Якщо остання дата в golden_online_time == вчорашня — пропускає (вже пораховано)
  • Інакше для кожного пропущеного дня і кожного оператора з golden_history_sending_messages:
    • будує денні інтервали онлайну (по оператору і по кожній його TU) і пише в golden_online_time
    • видаляє оброблену історію відправок старшу за сьогодні
    • окремо фіксує унікальні agency-invites (пара TU+RU за день) з ознакою «чи була відповідь» у ClickHouse — це сировина для метрики connections
  • Підсумок (success/error) пише у golden_error_report

Моніторинг

Лише logger.error() через Winston + підсумок у golden_error_report. ТГ-моніторинг не ввімкнений.

⚠️ TODO — внутрішня помилка ковтається (легасі-поведінка): воркер завжди завершується COMPLETED, ретраї durable-режиму фактично не вмикаються. Реальний стан видно тільки у golden_error_report.