我正在寻找一个很好的解决方案来记录失败的消息,在超过重试限制之后,没有处理错误队列.到目前为止我发现了什么:
因此,作为一个解决方案,我可以在PreDispatch中获取IConsumeContext,将其置于某种缓存中,然后在超出重试限制时将其从IsRetryLimitExceeded中的缓存中取出.
方法按以下顺序调用:IsRetryLimitExceeded - > PreDispatch - > PostDispatch
所以我找不到从缓存中删除成功处理的消息的好地方.
当然我可以使用大小有限的缓存,但整个解决方案似乎很奇怪.
任何关于这个问题的想法将不胜感激.
您可以在总线上实现和配置您自己的消息重试跟踪,以便失败的消息可以通过您的实现传递。您可以委托给默认重试跟踪器并仅拦截事件,以便您可以对它们采取行动,或者如果需要,您可以实现自己的重试跟踪。
MessageTrackerFactory是配置的委托,我认为接口就在附近。
| 归档时间: |
|
| 查看次数: |
1258 次 |
| 最近记录: |