Csharp/C#教程:NServiceBus延迟消息处理分享


NServiceBus延迟消息处理

我有一个NServiceBus应用程序,由于某些外部事件没有发生,可能无法处理给定的消息。 因为这个其他事件不是NSB事件,所以我无法正确实施传奇。

但是,不是仅仅重新排队消息(这会导致循环直到发生外部事件),而是将消息包装在另一个消息(DelayMessage)中并对其进行排队。 DelayMessage由不同的服务获取并放置在数据库中,直到重试间隔到期。 此时,延迟服务在原始队列上重新排队消息,以便进行另一次尝试。

但是,如果外部事件仍然没有发生,这种情况可能不止一次发生,而且即使从未发生这种情况,我也希望限制消息的往返次数。 这意味着DelayMessage具有MaxRetries属性,但是当延迟服务将原始消息排队以进行重试时,该属性会丢失。

我还缺少哪些其他选择? 我很高兴接受这个问题有一个完全不同的解决方案。

考虑实现一个存储第一条消息的传奇 ,保留它直到第二条消息到来。 您可能还希望saga也打开超时 ,这样如果第二条消息丢失或某事,您的进程将无法无限期地等待。

上述就是C#学习教程:NServiceBus延迟消息处理分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/959116.html

(0)
上一篇 2021年11月23日
下一篇 2021年11月23日

精彩推荐