我有一个rabitmq服务器,它有一个队列。我在队列中发布一些数据。现在,如果有一些错误处理该消息,在那个时候,我拒绝它为 ch.reject(msg,true)
. 所以消息再次被消耗,它又是错误的,然后再次拒绝它& 消息将再次被消耗。现在我想知道因为我拒绝了它,所以消息已经被发送了。
const queueresponse = await self.filterData(JSON.parse(msg.content.toString()));
if (queueresponse) {
ch.ack(msg);
console.log("queue received true")
} else {
ch.reject(msg, true);
console.log("queue received false")
}
有什么方法可以知道,如果消耗的信息已经发送,因为它被拒绝?
在Rabbitmq中没有这样的功能,以查看消息是否先前被拒绝.然而,你可以用JSON中的一些额外数据来重新排队,而不是拒绝消息,如
{retry_count = 1}
当你下次收到这样的信息时,你可以阅读它,并知道它以前被重新排队。