У меня около 1000-10000 заданий, которые мне нужно запускать на постоянной основе каждую минуту или около того. Иногда новая работа приходит или другие нужно отменить, но это редкое событие. Рабочие места помечены и должны быть нарушены рабочими, каждый из которых обрабатывает только задания определенного типа.Каков оптимальный способ организации бесконечно зацикленной рабочей очереди?
На данный момент я хочу использовать cron и загружать всю базу данных заданий в каком-то брокере - RabbitMQ или beanstalkd (не решили, какой из них использовать).
Но этот подход кажется мне уродливым (используя таймер для имитации бесконечности, загрузки всей базы данных и т. Д.) И имеет недостаток: например, если какие-то задания обрабатываются медленнее, чем добавляются в очередь, они могут быть перегружены и брокер сообщений будет есть все бараны, поменять местами, а затем просто остановиться.
Есть ли другие возможности? Я не использую правильные шаблоны для работы? (Может быть, мне не нужна очередь или что-то такое?)
p.s. Я использую python, если это важно.
Я вижу. И что, если у меня будет несколько миллионов заданий, я не смогу сразу загрузить их в очередь, какой шаблон я должен использовать для заполнения очереди? – Moonwalker
Почему бы вам не заполнить очередь несколькими миллионами заданий? Кролику все равно. Просто прокачайте свои рабочие места и дайте им полететь. –
Спасибо. Теперь все ясно. – Moonwalker