У меня проблема с потребителем RabbitMQ. На самом деле у меня есть один потребитель, получающий сообщения из трех очередей. Проблема в том, что мне нужно получить несколько сообщений от каждого из них, но мой потребитель получает только одну очередь и заканчивает получение. Буду признателен, если кто-то поможет мне решить эту проблему.RabbitMQ: несколько сообщений и один потребитель
Потребительское код ниже
for (int i = 0; i < queueNames.size(); i++) {
Channel channel = connection.createChannel();
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(queueNames.get(i).toString(), true, consumer_tag, consumer);
flag = true;
while (flag) {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String routingKey = delivery.getEnvelope().getRoutingKey();
System.out.println(routingKey);
String message = new String(delivery.getBody(), "UTF-8");
flag = false;
}
}
где queueNames представляет собой список, содержащий имена моих очередей (в количестве 3).
Когда я ма ke всего лишь while (true), все сообщения из одной очереди принимаются, но здесь возникает другая проблема. Потребитель не знает, есть ли еще сообщения и все еще ждет их. Я хотел бы пойти в другую очередь, если для меня больше не будет сообщений, которые будут получены из этого цикла. Любые предложения, как это сделать? – MrPug