使用 rabbitmq 实现作业队列
Implementing a job queue with rabbitmq
我构建了一个 rabbitmq 包装器,它可以向消费者发布消息,并且运行良好。
我是否也可以在 rabbitmq 中构建一个工作队列(如 gearman),它可以将长 运行 任务分配给消费者,然后消费者将结果通知发布者。
我想这需要发布者同时充当消费者,我不确定如何实施。 (如有错误请指正)
或者,rabbitmq 是不是适合这种情况的工具。
谢谢,
RabbitMQ 支持这种类型的模式。查看 RPC tutorial 了解如何实现此模式的 bootstrap。
它可以根据您的需要以不同的方式实现:
- direct reply queue,将创建队列并仅用于与请求关联的回复
- 包含所有回复的静态回复队列
它通常隐含关联 ID 以将请求与回复相关联,或者如果回复包含所有必要信息,则它可以是无状态的。
这真的取决于你的需要。
我构建了一个 rabbitmq 包装器,它可以向消费者发布消息,并且运行良好。
我是否也可以在 rabbitmq 中构建一个工作队列(如 gearman),它可以将长 运行 任务分配给消费者,然后消费者将结果通知发布者。
我想这需要发布者同时充当消费者,我不确定如何实施。 (如有错误请指正)
或者,rabbitmq 是不是适合这种情况的工具。
谢谢,
RabbitMQ 支持这种类型的模式。查看 RPC tutorial 了解如何实现此模式的 bootstrap。
它可以根据您的需要以不同的方式实现:
- direct reply queue,将创建队列并仅用于与请求关联的回复
- 包含所有回复的静态回复队列
它通常隐含关联 ID 以将请求与回复相关联,或者如果回复包含所有必要信息,则它可以是无状态的。
这真的取决于你的需要。