Использование ActiveMQ для обработки ошибок во время вызова веб-службы - PullRequest
0 голосов
/ 29 мая 2020

У меня есть процесс 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 сообщений, одно из которых соответствует каждой конечной точке веб-службы, и выделите прослушиватель очереди в очередь сообщений. Если сообщение не может быть доставлено успешно, оно может быть снова помещено в очередь для последующей доставки.

...