为了账号安全,请及时绑定邮箱和手机立即绑定

RabbitMQ回调函数没有起到作用

final ConfirmCallback callback=new RabbitTemplate.ConfirmCallback() {

public void confirm(CorrelationData correlationData, boolean ack, String cause) {

System.out.println("correlationData:"+correlationData);

//发送消息是的唯一消息ID

String massageId=correlationData.getId();

System.out.println("消息massageId 处理。。。。。。。"+massageId);

if(ack) {

//如果confirm返回成功,则进行更新

OrderMassageLog massageLog=new OrderMassageLog();

massageLog.setOrderMassageId(massageId);

massageLog.setStatus(Const.ORDER_SEND_SUCCESS);

LogMapper.updateByPrimaryKeySelective(massageLog);

}else {

System.out.println("消息异常处理。。。。。。。");

}

}

};

public void SendOrderInfo(OrderMaster order) {

//设置监听对象

rabbit.setConfirmCallback(callback);

//设置唯一的对象消息id

CorrelationData date=new CorrelationData(order.getOrderMassageId());

rabbit.convertAndSend("order-exchenge","order.key",order,date);//发送消息

}

这个callback回调函数  发送消息后 没有打印对应的correlationData   没有运行到这个callback这个函数内  数据发送和数据接收 都没有问题

数据库的订单表被插入数据  log表也插入数据  就是log表的状态 应该从0 变为 1  消息发送成功  但是没有改变  一直是0 没有改变  程序也灭有报错 运行正常  就是callback函数  没有运行到

正在回答

1 回答

配置添加发布返回确认

spring.rabbitmq.publisher-returns: 是否启用【发布返回】,默认false


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

RabbitMQ回调函数没有起到作用

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信