Установить время ожидания по умолчанию с подтверждениями издателя - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу реализовать пример с подтверждениями издателя AMQP, настроенными с таймаутом.Примерно так:

        private final CountDownLatch confirmLatch = new CountDownLatch(1);

        TransactionResponseFactory processingPeply = (TransactionResponseFactory) processingTransactionTemplate.convertSendAndReceive(
            ContextServer.EXCHANGE_PROCESSING, ContextServer.ROUTING_KEY_PROCESSING_, tf);


        if (processingTransactionTemplate.confirmLatch.await(10, TimeUnit.SECONDS)) {
            System.out.println("Confirm received");

        }
        else {
            System.out.println("Confirm NOT received");
            // add some logic here to resend
        }

Как правильно его реализовать?

1 Ответ

0 голосов
/ 12 февраля 2019
  • Добавление RabbitTemplate.ConfirmCallback к шаблону.
  • Отправка защелки в объекте CorrelationData (подкласс) - дополнительный параметр в операции отправки.
  • В обратном вызовеОбратный отсчет защелки.

Имейте в виду, что ожидание подтверждения после каждой отправки значительно замедлит публикацию.

Это действительно предназначено для публикации группы сообщений и затем позжежду их подтверждения.

Конечно, дизайн зависит от ваших требований.

...