【问题标题】:Set default timeout with publisher confirmations使用发布者确认设置默认超时
【发布时间】:2019-02-12 10:59:45
【问题描述】:

我想用配置了超时的 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】:
    • 在模板中添加RabbitTemplate.ConfirmCallback。
    • 在CorrelationData 对象(子类)中发送锁存器 - 发送操作中的额外参数。
    • 在回调中倒计时锁存器。

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

    它真的是为了发布一堆消息,然后等待他们的确认。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 2013-07-06
      • 2022-08-19
      • 2020-05-21
      相关资源
      最近更新 更多