Приветствую.
Возникла такая проблема.
Есть очередь с несколькими воркерами.
В очередь попадает задача которая выполняется в районе 2х минут. (Задача #1)
Параллельно выполняется другая задача (Задача #2) которая проверяет выполнение (Задача #1).
Проблема в том что первый Job еще не завершен, то есть Started но еще не Done, а проверка Yii::$app->queue->isDone($id) в (Задача #2) возвращает true хотя Job только стартовал но не завершен.
Как запустить Job после выполнения всех остальных задача? Например:
Создать 100 страниц pdf по 1ой странице в каждом Job и в итоге после завершения всех задача (100) в 101 задаче сделать суммирующий Job?
Сейчас все что летит в очередь возвращает id и передается в финальный Job который проверяет статус выполнения по id. Перезапускается если еще не все выполнено. Но выше описанная проблема все ломает.
Очереди и проверка выполнения Job-ов
- Ghost_nsk
- Сообщения: 825
- Зарегистрирован: 2012.01.01, 00:45
- Откуда: Новосибирск
- Контактная информация:
Re: Очереди и проверка выполнения Job-ов
возможно имеет смысл перенести часть логики по заданиям в отдельную табличку в базе и там проверять статусы выполнения всех относящихся к одному документу заданий (а не через Yii::$app->queue), если все задачи выполнены, то тогда запускаем результирующую задачу