【发布时间】:2014-01-08 03:24:16
【问题描述】:
首先,这不是“什么是最好的队列管理器...”之类的问题。
我目前使用 Gearman 进行队列管理。它很快,很可靠,但我确实错过了一些功能,我想根据我的需要了解更好的选择。我曾经在 Ruby 中使用 Delayed_job 和 Resque,但即使使用这些我也没有找到以下所有要求:
- 我不需要超快的服务器(我们每天处理约 3k 个任务/作业)
- 我需要它才能重新排队任务
- 以持久的方式存储当前任务(不仅仅是内存)
- 它应该能够在服务器之间复制数据(以便在服务器崩溃的情况下保持高可用性)
- 列表项
- 并且能够有一个超时自动重新排队
- 能够延迟任务
- 从现在起安排到 5 分钟
- 或安排到下周日
- 能够管理队列
- 每个队列有多少作业?
- 工作是关于什么的?
- 我可以查询队列吗?
其他想法:
- 能够通过 Zabbix 监控服务器状态会很好。
我对@987654321@ 的第一印象很好。我确实想念服务器之间的数据复制。我对ActiveMQ Apollo也有很好的印象,但我没有看到如何延迟安排。
有什么想法吗?
【问题讨论】:
-
我们为此插件使用 RabbitMQ:github.com/rabbitmq/rabbitmq-delayed-message-exchange,它允许您以毫秒为单位将具有
x-delay值的消息排队。
标签: php queue activemq jobs beanstalkd