单个线程可以使用多个队列吗?

时间:2013-07-03 09:05:56

标签: java multithreading rabbitmq message-queue

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

单个线程是否可以同时阻止多个队列,例如consume(List<String> queues,...)它从哪个队列返回第一个可用项目?

我查看了the API,但没有找到任何办法。

1 个答案:

答案 0 :(得分:1)

如果您想等待多个队列,只需创建一个Consumer(可以是QueueingConsumer或自定义一个),并在您的队列中多次调用basicConsume()这个消费者实例作为一个论点。

这样,handleDelivery()回调将在(QueueingConsumerconsumer.nextDelivery()将阻止直到)队列中的第一个项目可用时被调用。< / p>