Имею большую конченую очередь в бд из задач.
Раз в минуту воркер-менеджер читает из бд пачку задач и отправляет их в очередь rmq (если в ней меньше определённого количества элементов).
К этой очереди подключается 300 процессов-воркеров которые берут по 1 задаче и выполняют их пока в очереди не станет пусто.
i.imgur.com/dALfdDs.png
Понадобилось добавить возможность безопасно и быстро остановить все воркеры довольно логично разослать им сообщение на остановку через тот-же rmq. Но непонятно как это реализовать ведь воркеры продолжат делать задачи из общей очереди и сообщению об остановке придётся ждать пока очередь не опустеет.
Возможно я неправильно собрал это дело?