GladGoing 2020-07-14 10:03 采纳率: 0%
浏览 495

RabbitMQ使用延迟插件时导致消息始终触发ReturnCallback回调,但实际消息可以被消费,是延迟插件导致的吗?

问题:RabbitMQ使用延迟插件时导致消息始终触发ReturnCallback回调,但实际消息可以被消费,是延迟插件导致的吗?

生产者代码:

public void sendList(String msg, Integer delayTime) {
        log.info("======> 商城订单自动收货MQ开始发送   data:{}", msg);
        rabbitTemplate.convertAndSend(ShopAutoReceivesMqConfig.SHOP_ORDER_AUTO_RECEIVES_DELAY_EXCHANGE, ShopAutoReceivesMqConfig.SHOP_ORDER_AUTO_RECEIVES_DELAY_ROUTING_KEY, msg, message -> {
            //设置超时时间
            message.getMessageProperties().setDelay(delayTime);
            return message;
        });
        rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
            if (!ack) {
                log.error("   ---> 待自动收货订单发送到交换机失败 correlationData:{} <---", JSON.toJSONString(correlationData));
            } else {
                log.info(" 待自动收货订单发送至交换机成功 success ");
            }
        });
        rabbitTemplate.setReturnCallback((message, replyCode, replyText, exchange, routingKey) -> {
            log.error(">>> 待自动收货订单发送至交换机队列失败   message:{} ,replyCode:{} ,replyText:{} ,exchange:{} ,routingKey:{} <<< ", message, replyCode, replyText, exchange, routingKey);
        });
    }

尝试方案,使用不带插件的延迟队列则不会触发该方法

  • 写回答

3条回答 默认 最新

  • qq_38619581 2020-07-17 10:56
    关注

    不用延迟插件,换成死信队列吗

    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮