具有不错的PHP客户端的队列管理器

时间:2013-12-19 14:03:24

标签: php queue activemq jobs beanstalkd

首先,这不是“什么是最好的队列管理员......”这类问题。

我目前使用Gearman进行队列管理。它速度快,可靠,但我确实错过了一些功能,我想根据自己的需要了解更好的选择。我习惯使用Ruby中的Delayed_job和Resque,但即使是那些我没有找到以下所有要求的那些:

  1. 我不需要速度超快的服务器(我们每天处理~3k任务/工作)
  2. 我需要它才能重新执行任务
  3. 以持久方式存储当前任务(不仅仅是内存)
    • 它应该能够在服务器之间复制数据(以便在服务器崩溃时保持高可用性)
  4. 列出项目
    • 并且能够超时,自动重新加入
  5. 能够推迟任务
    • 从现在开始计划到5分钟
    • 或安排到下周日
  6. 能够管理队列
    • 每个队列有多少个作业?
    • 有什么工作?
    • 我可以查询队列吗?
  7. 其他想法:

    • 能够通过Zabbix监控服务器状态会很不错。

    我对Beanstalkd有了很好的第一印象。我确实只想念服务器之间的数据复制。我对ActiveMQ Apollo也有一个很好的印象,但我没有看到如何安排延迟。

    有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Beanstalkd完成大部分工作 - 您可以保存二进制日志。虽然它只是本地的。监控很简单,只需连接,发送一个“STATS”即可。打电话,并阅读结果,也可以选择返回从已知管道中获取计数。

还有另外两种潜在的 - 远程托管 - 具有高可用性声明的解决方案。 Amazon SQS和IronMQ。 Iron的一个优点(虽然我并未亲自使用它)是它还具有几乎100%与Beanstalkd兼容的界面,只是更多的企业'对于后端。