Закриття тасків після disconnect
src/prime/components/workers/primeJobCloseOperatorTask.queue.ts
Не cron. Викликається програмно через addPrimeJobCloseOperatorTasks({operatorFamilyId, taskIds}) коли оператор відключився. Між постановкою і виконанням — 10 хвилин (delay: 60000 * 10).
Це єдиний воркер, який лишився на старому Bull-патерні (не мігрований на
CronWorker), бо він event-driven, а не крон. Аналог goldenjobCloseOperatorTask.queue.ts.
Grace period: якщо за ці 10 хв оператор повернувся — попередній job стирається (addPrimeJobCloseOperatorTasks спершу видаляє існуючий job з тим самим jobId = operatorFamilyId). Якщо ні — job виконується.
Що відбувається
- Через RMQ дозапитує поточний стан оператора (
StackOperatorWithFamily.routingKey) - Звіряє
lastConnectAt/lastDisconnectAt: працює далі тільки якщоlastDisconnect > lastConnectІ минуло понад 10 хв після disconnect (інакше тихоdone()) - Закриває таски оператора через
PrimeTaskRepository.findNotClosedAndNotAnsweredTasksAndClose:- незакриті/невідповіджені з переданого
taskIds→ статусclosed_offline - решту незакритих → статус
need_debug
- незакриті/невідповіджені з переданого
Моніторинг
Лише Winston-логи (winston.prime.all, з повним JSON.stringify({error, data})). StackMonitoring і TG не використовуються.