У меня есть процесс Java, который прослушивает сообщения из очереди, размещенной в ActiveMQ, и вызывает веб-службы, если полученный статус равен COMPLETE
.
Я также думал об обработке вызовов веб-сервисов с помощью ActiveMQ. Есть ли способ наилучшим образом использовать ActiveMQ, используя, возможно, другую очередь?
Это может помочь мне в обработке сценария, если один или несколько вызовов веб-службы завершились неудачно с первой попытки. Но я пытаюсь подумать, что я могу сделать, чтобы добиться чего-то вроде этого.
Нужно ли мне пересылать параметры веб-службы в очередь ActiveMQ, а затем что-то искать?
@Autowired
private JavaMailSender javaMailSender;
// Working Code with JMS 2.0
@JmsListener(destination = "MessageProducer")
public void processBrokerQueues(String message) throws DaoException {
...
if(receivedStatus.equals("COMPLETE")) {
// Do something inside COMPLETE
// Need to call 8-10 webservices (shown only 2 below for breviety)
ProcessBroker obj = new ProcessBroker();
ProcessBroker obj1 = new ProcessBroker();
// Calling webservice 1
try {
System.out.println("Testing 1 - Send Http POST request #1 ");
obj.sendHTTPPOST1();
} finally {
obj.close();
}
// Calling webservice 2.
try {
System.out.println("Testing 2 - Send Http POST request #2");
obj1.sendHTTPPOST2();
} finally {
obj1.close();
}
} else {
// Do something
}
}
То, что я ищу:
В основном, если есть возможность создать дополнительную очередь сообщений, отправьте в очередь 8 сообщений, одно из которых соответствует каждой конечной точке веб-службы, и выделите прослушиватель очереди в очередь сообщений. Если сообщение не может быть доставлено успешно, оно может быть снова помещено в очередь для последующей доставки.