0

我有一个 Java 线程,它调用basicConsume(String queueName,...)从 RabbitMQ 服务器获取消息。

单个线程可以一次阻塞多个队列,例如consume(List<String> queues,...),它从任何队列返回第一个可用项目吗?

我查看了 API,但没有找到任何方法来做到这一点。

4

1 回答 1

1

如果您想在多个队列上等待,您可以简单地创建一个Consumer(它可以是一个或自定义的)并使用相同的消费者实例作为参数在您的队列上QueueingConsumer多次调用。basicConsume()

这样,当(或者,在 a 的情况下,将阻塞直到)队列中的第一个项目可用时,将handleDelivery()调用回调。QueueingConsumerconsumer.nextDelivery()

于 2013-07-03T10:06:26.500 回答