в моей программе я получаю сообщение от Exchange. Я создал свой собственный Consumer и переопределил метод handleDelivery.
Как я могу передать сообщение другому классу и аккуратно обработать сообщение?
Прямо сейчас у меня есть слушатель с методом onNewMessage, который вызывается внутри метода handleDelivery. Проблема, которую я вижу с этим, состоит в том, что метод handleDelivery не завершается, пока я не закончу обработку сообщения (или, по крайней мере, метод onNewMessage).
Можете ли вы помочь мне с этим вопросом?
Большое спасибо!
Редактировать - добавлен код:
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
eventMsg.add(properties.getHeaders().get("filePath"));
eventMsg.add(body);
if(listener != null) {
listener.onEventConsumed(eventMsg);
}
}
public void onEventConsumed(List<Object> eventMsg) {
byte [] evtPayload = (byte[]) eventMsg.get(1);
String filePath = eventMsg.get(0).toString();
String jobToStart = config.getJobGlossary().get(filePath);
activeJobs.add(new Job(filePath, evtPayload, jobToStart, amqpFactory, config));
}
И обработка продолжается внутри объекта задания.