我正在使用RabbitMQ java API,我有一个注册了*.apple
路由密钥的工作人员。我想确保只有一个工作人员可以使用明确的路由密钥。
例如,给队列3个职位:
两名工作人员将立即在orange.apple
和green.apple
开始工作,并且只有在orange.apple
确认后,才会启动新的orange.apple
工作人员。
答案 0 :(得分:0)
除了传递消息的队列之外,您无法根据路由密钥限制任何内容。
在您的情况下,您希望按队列限制工作人员,并且您可以通过将消费者设置为" exclusive"来实现此目的。当它连接到/从队列消耗时。
您可能希望使用消费者预取限制为1,以及" auto ack"也是假的。
通过这种方式,您将在队列中拥有一个消费者,它一次只会处理一条消息,并且在您完成下一个消息之前,您将被要求发送消息。消息。