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函數? 沒有運行到
2021-12-10
配置添加發布返回確認
spring.rabbitmq.publisher-returns: 是否啟用【發布返回】,默認false