Денний онлайн по сендеру
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
- будує денні інтервали онлайну (по оператору і по кожній його TU) і пише в
- Підсумок (success/error) пише у
golden_error_report
Моніторинг
Лише logger.error() через Winston + підсумок у golden_error_report. ТГ-моніторинг не ввімкнений.
⚠️ TODO — внутрішня помилка ковтається (легасі-поведінка): воркер завжди завершується COMPLETED, ретраї durable-режиму фактично не вмикаються. Реальний стан видно тільки у golden_error_report.