В моем проекте есть такая сложная штука как активация пользователя. Это дело состоит из нескольких компонентов и работает постоянно с ветками структур пользователя. Поэтому выполнение активации происходит достаточно медленно.
Итак при активации многие пользователи должны в порядке очереди получать бонусы, поэтому очень важно делать активацию последовательно.
Я выбрал для этой задачи gearman, а именно расширение для моего фраэмворка
https://github.com/Filsh/yii2-gearman
Настроил это дело, все хорошо, все работает. Теперь возник вопрос касательно именно синхронного выполнения задания.
У меня есть воркер с нужной мне функцией и я в фоне отправляю на него задание:
Я тестировал очередь на записи данных в файл с sleep() и вроде работает все синхронно, тоесть пока не отработает 1 файл, второй не создается.
Теперь такой вопрос, как можно остановить выполнение всех задач в очереди если 1 задача по какой-то причине не выполнилась ?