使用发布者确认设置默认超时

问题描述 投票:2回答:1

我想实现配置了超时的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
        }

实施它的正确方法是什么?

java amqp spring-amqp
1个回答
0
投票
  • RabbitTemplate.ConfirmCallback添加到模板中。
  • CorrelationData对象(子类)中发送锁存器 - 发送操作中的额外参数。
  • 在回调中倒计数锁存器。

但请记住,每次发送后等待确认都会大大减慢发布速度。

它真的打算发布一堆消息,然后等待他们的确认。

当然,设计取决于您的要求。

© www.soinside.com 2019 - 2024. All rights reserved.