我遇到需要处理一批Rabbit消息的情况。 其中一些可能会失败,因此无法解决。假设其中一个失败了,我把它解决了:
model.BasicNack(deliveryTag: 1, mutliple: false, redeliver: false);
在处理完所有消息之后,我想使用多次确认,以确认所有未失败的消息。
model.BasicAck(deliveryTag: 5, multiple: true);
不幸的是,我随后收到一条错误消息:“ PRECONDITION_FAILED-未知交付标签1 ”。
我很困惑,因为Rabbit文档明确说明了这一点,即您不得两次确认同一条消息,我相信这就是我收到该错误的原因。
但是我想知道,难道不应该多个已经确认的ack处理交付标签并且不尝试确认它们吗?我在这里丢失了什么吗,还是只是尝试确认所有标记,直到传递为参数的标记为止?