【发布时间】:2016-06-09 21:13:39
【问题描述】:
我正在将当前在 cron 上运行的一些资源密集型功能移动到 RabbitMQ 队列。我厌倦了长时间运行 PHP 消费者脚本,所以我正在考虑执行以下操作:
- 作业会在一天开始时添加到队列中。
- cron 运行启动消费者的命令。
- 消费者使用
basic_get获取作业、处理作业、确认作业然后退出。 - cron 再次运行并处理下一个作业。
我有几个关于这将如何运作的问题。
如果我决定通过 cron 启动 2 个工作人员(运行命令两次)并且第一个工作仍在处理中,并且尚未得到确认,那么 RabbitMQ 是否会向第二个工作人员发送相同的工作?
我注意到basic_consume 的性能会更高,因为在接收每项工作时没有往返。是否可以使用basic_consume 而不是basic_get 而不必担心工人跑太久?
【问题讨论】: