我有一个生产者,一个队列和 N 个消费者。生产者创建由消费者执行的“工作”。我想使用拉模型,其中消费者从队列中拉出作业,当它完成前一个作业时,而不是使用循环的推送模型,其中作业被等于消费者。
我的消费者使用相同的代码,但是当我运行它时,第一个连接并接收所有工作。即使在调试中查看它,第一个得到所有信息,但第二个 etc 没有收到任何消息(即使它在第一个执行接收之前执行接收,这会返回一些作业)。
连接 URL:“amqp://guest:guest@prodconstest/?brokerlist='tcp://127.0.0.1:5767'”
每个消费者的代码都会:
- 创建 AMQConnection
- 使用自动确认创建队列会话
- 连接开始
- 创建队列
"ADDR:" + queueName + "; {create: always, link:{x-subscribes: {exclusive: false}}}"
- 创造消费者
理论上是否可以使用 AMQP 队列来实现?如果是这样,怎么做?