2020年5月15日 星期五

RabbitMQ noAck設定

當接收者設定監聽訊息時 可以設定是否要回應MQ

noAck:true 表不需做任何確認
也就是說MQ將訊息送給consumer(接收者)後
就會立刻把這筆訊息由queue清掉

預設noAck為false
當producer送出訊息到MQ上
MQ將會通知有設定監聽的consumer
接收端在設定接聽時可以透過noAck設定是否必須要回應MQ
noAck:fasle 表一定要回應讓MQ知道工作已完成
若沒有回應,則訊息還在MQ內並不會被清除
下次還是會再重送
consumer的確認動作
只要執行channel.ack(msg)就可以了
注意 這裡的msg是由mq送過來的訊息物件
不要做任何修改 直接當作ack的參數

當接收者不在線上
sender發出後
當接收者後來才上線
無論noAck設定為何都會收到

沒有留言: