Повна вигрузка статистики
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 і алертило.