Менеджер очередей с приличным PHP-клиентом

Прежде всего, это не вопрос типа "какой менеджер очередей лучше...".

В настоящее время я использую Gearman для управления очередью. Это быстро, надежно, но мне не хватает некоторых функций, и я хотел бы найти лучшие варианты в соответствии со своими потребностями. Я использую для работы Delayed_job и Resque в Ruby, но даже с ними я не нашел всех требований ниже:

  1. Мне не нужен молниеносно быстрый сервер (мы имеем дело с ~3k задач/работ в день)
  2. Мне нужно, чтобы он мог повторно поставить задачу в очередь
  3. Store current tasks in a persistent way (not memory only)
    • It should be able to replicate data among servers (in order to maintain High Availability in case of server crash)
  4. List item
    • And to be able to have a timeout that will, automatically reenqueue
  5. Be able to delay a task
    • schedule to 5 minutes from now
    • или запланировать на следующее воскресенье
  6. Be able to manage the Queue
    • How many jobs per queue?
    • О чем работы?
    • Могу ли я запросить очередь?

Другие мысли:

  • Было бы неплохо иметь возможность отслеживать состояние сервера через Zabbix.

У меня сложилось отличное первое впечатление о Beanstalkd. Мне не хватает только репликации данных между серверами. У меня также сложилось хорошее впечатление о ActiveMQ Apollo, но я не понял, как планировать с задержкой.

есть идеи?


person otaviofcs    schedule 19.12.2013    source источник
comment
Мы используем RabbitMQ для этой цели с этим плагином: github.com/rabbitmq/rabbitmq-delayed -message-exchange, который позволяет ставить в очередь сообщения со значением x-delay в миллисекундах.   -  person Christopher Reid    schedule 17.10.2018


Ответы (1)


Beanstalkd делает большую часть этого, и вы можете сохранить двоичный журнал. Хотя это просто локально. Мониторинг прост, просто подключитесь, отправьте вызов «СТАТИСТИКА» и прочитайте результаты, при необходимости вернитесь, чтобы получить подсчет с известных трубок.

Есть два других потенциальных решения — с удаленным хостингом — которые претендуют на высокую доступность. Amazon SQS и IronMQ. Одним из преимуществ Iron (хотя я лично им не пользовался) является то, что он также имеет интерфейс, почти на 100% совместимый с Beanstalkd, просто более «предприимчивый» для серверной части.

person Alister Bulman    schedule 21.12.2013
comment
Спасибо Алистер. На данный момент я ставлю в Beanstalkd. Но мне не хватает синхронизации между серверами. Позвольте мне проверить IronMQ, чтобы увидеть, как он справляется с репликацией данных, и я дам вам знать. - person otaviofcs; 08.01.2014
comment
Привет, Алистер, как я мог видеть, IronMQ довольно хорош, но он просто работает как сервис. Это для нас проблема. Я бы использовал Amazon SQS, если бы мог использовать его в облаке прямо сейчас. - person otaviofcs; 08.01.2014