问题描述
Delayer具有消息存储,它提供了在应用程序关闭时不会丢失消息的功能。延迟一分钟,它的工作正常。 但是,如果我设置了retryDelay,则该消息将在第一次尝试时从消息存储中删除,并且在应用程序关闭时会丢失。
解决方法
我认为这是一个遗漏,我们确实必须在每次重试时都将消息存储回去。 请提出GH问题作为错误,我们将尽快修复。
作为一种解决方法,我建议看一下Collection.CancelCollection()
,并使用其ExpressionEvaluatingRequestHandlerAdvice
和failureChannel
将消息重新路由回您的onFailureExpression
。由于内部重试对我们没有帮助,您可能需要合并delayer
而不是RequestHandlerRetryAdvice
。
还有延迟器的retryDelay
选项。