背景
我们使用Langohr(版本3.4.0)从RabbitMQ使用消息并尝试将它们持久化到MongoDB中。我们没有使用auto-ack
,因为如果我们无法在MongoDB中保留消息,我们希望以后能够重试。我们正在使用ack-unless-exception
功能来适应这种情况。今晚MongoDB暂时中断,并且在短时间内停机,在此期间40条消息无法保留,因此保留在RabbitMQ队列中。但当MongoDB再次重新启动时,我们的Langohr处理程序刚收到新消息。在重新启动我们的应用程序之前,旧的未交付给我们。
问题
如何让RabbitMQ重新使用Langohr以前的nack:ed消息而不必重启我们的应用程序?