download-main-statistics

Повна вигрузка статистики

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

Раз на добу о 13:06 (cron 6 13 * * *).

Перед стартом є перевірка: якщо з попереднього запуску минуло менш ніж 12 годин — пропускає. ❓ Точна мотивація саме 12 годин не задокументована; найімовірніше це захист від повторного запуску після рестарту процесу — TODO уточнити.

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

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

  • Вигрузка основної стати — для кожного незаблокованого golden_admins
  • Оновлення стати — конвертація в “зв’язки”
  • Оновлення онлайну юзерів
  • Оновлення фаворитів
  • Оновлення agency-листу
  • Оновлення актуального agency
  • Генерація метрик
  • Чистка agency

Між кожним кроком пише у golden_error_report маркер виконання через saveCriticalLogs({isError: false}) — це не помилки, а маркери “до якої фази дійшли” для трейсингу.

Моніторинг

У production шле StackMonitoring.MonitoringWorkerLogMessage зі статусом COMPLETED / FAILED (WorkerType.DownloadMainStatistic).

⚠️ TODO — статус FAILED сюди фактично ніколи не приходить. Зовнішній try/catch усередині downloadMainStatisticsProcess() ловить всі помилки і викликає scheduleRetry() без throw. Queue-обгортка завжди отримує успішний return → завжди пише COMPLETED. Треба переробити: розрізняти типи помилок — тимчасові (мережа, 5xx з партнерського API) ретраїти всередині як зараз, логіка/непоправне пробрасити назовні щоб моніторинг бачив FAILED і алертило.