0
我有一個Java線程調用basicConsume(String queueName,...)
來從RabbitMQ服務器獲取消息。單個線程是否可以消耗多個隊列?
可以一個單個一次線程在多於一個隊列上,例如, consume(List<String> queues,...)
它從哪個隊列返回第一個可用項目?
我看過the API,但沒有找到任何方法來做到這一點。
我有一個Java線程調用basicConsume(String queueName,...)
來從RabbitMQ服務器獲取消息。單個線程是否可以消耗多個隊列?
可以一個單個一次線程在多於一個隊列上,例如, consume(List<String> queues,...)
它從哪個隊列返回第一個可用項目?
我看過the API,但沒有找到任何方法來做到這一點。
如果你想等待多個隊列,你可以簡單地創建一個Consumer
(它可以是一個QueueingConsumer
或者自定義),並多次調用你的隊列basicConsume()
與此相同的消費者實例作爲參數。
這樣,handleDelivery()
回調將在(或者在QueueingConsumer
,consumer.nextDelivery()
將阻塞的情況下)調用時從隊列中獲得第一項。
我認爲你將需要超過1個線程 – robthewolf