Задать вопрос
DoctorX
@DoctorX
Веб разработчик

Как отправить сигнал о завершении всем воркерам в RabbitMq?

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

Понадобилось добавить возможность безопасно и быстро остановить все воркеры довольно логично разослать им сообщение на остановку через тот-же rmq. Но непонятно как это реализовать ведь воркеры продолжат делать задачи из общей очереди и сообщению об остановке придётся ждать пока очередь не опустеет.
Возможно я неправильно собрал это дело?
  • Вопрос задан
  • 289 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
обычно воркеры сидят под супервайзером. гасить в нем.

у мну runit за ними следит
прибиваю все символьные ссылки в /etc/service/ и все померли
надо запустить проставляю ссылки скриптом снова
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽