使用 rabbitmq 实现作业队列

Implementing a job queue with rabbitmq

我构建了一个 rabbitmq 包装器,它可以向消费者发布消息,并且运行良好。

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

我想这需要发布者同时充当消费者,我不确定如何实施。 (如有错误请指正)

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

谢谢,

RabbitMQ 支持这种类型的模式。查看 RPC tutorial 了解如何实现此模式的 bootstrap。

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

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

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

这真的取决于你的需要。