通过发布者确认设置默认超时

时间:2019-02-12 10:59:46

标签: java amqp spring-amqp

我想用配置了超时的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 :(得分:0)

  • 在模板中添加RabbitTemplate.ConfirmCallback
  • CorrelationData对象(子类)中发送锁存器-发送操作中的额外参数。
  • 在回调中倒计时闩锁。

请记住,每次发送后等待确认将大大降低发布速度。

它的真正目的是发布一堆消息,然后等待它们的确认。

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

相关问题