使用rabbitmq实现作业队列

时间:2015-04-27 18:25:21

标签: php rabbitmq job-queue

我已经构建了一个rabbitmq包装器,它向消费者发布消息,这很有效。

我是否还可以在rabbitmq中构建一个工作队列(如gearman),它可以将长时间运行的任务分配给消费者,而消费者又可以通过结果通知发布者。

我想这会要求发布商充当消费者,我不知道如何实施。 (如果我错了,请纠正我。)

或者,rabbitmq不是这种情况的工具。

谢谢,

1 个答案:

答案 0 :(得分:2)

RabbitMQ支持这种类型的模式。查看RPC tutorial以了解如何实现此模式的引导程序。

可以根据您的需要以不同的方式实施:

  • direct reply queue,将创建队列并仅用于与请求相关联的回复
  • 静态回复队列,其中包含所有回复

它通常意味着将请求与回复相关联的相关ID,或者如果回复包含所有必要信息,则它可以是无状态的。

这实际上取决于您的需求。