NServicebus 4.7.6不尊重app.config上的SecondLevelRetriesConfig值

本文关键字:config app 上的 SecondLevelRetriesConfig NServicebus | 更新日期: 2023-09-27 18:15:39

代码中没有自定义配置。

<SecondLevelRetriesConfig Enabled="true" TimeIncrease="00:05:00" NumberOfRetries="10" />

它基于默认的SecondLevelRetriesConfig值工作,而不拾取自定义配置。

更新:

抱歉没有更新场景。这种情况发生在nservicebus worker为MasternodeConfig配置时。对于第二级重试,它不尊重工作节点配置。超时在MasterNode(分发服务器)中处理。

NServicebus 4.7.6不尊重app.config上的SecondLevelRetriesConfig值

NServiceBus的主要版本之间单反的行为是不同的。下面是来自http://docs.particular.net/nservicebus/scalability-and-ha/distributor/error-handling

的文档转储

如果不使用NServiceBus v3, v4或v5,请检查链接

NServiceBus v5 . x

SLR策略NumberOfRetries设置its在上同时应用于分发器和工作器,TimeIncrease设置应用于分发器。

发生错误时,故障管理器立即调用SLR策略。消息将不会被转发到重试队列,这是之前的行为。

当达到重试限制时,消息将立即转发到错误队列或转发到。retries队列并计划重试。如果SLR策略输出需要重试,则将消息转发到。队列重试

NServiceBus v4.x

SLR策略仅对NumberOfRetriesTimeIncrease设置在分发服务器上应用。

分发服务器有一个。retries队列,如果发生错误,消息将被转发到该队列。然后分发服务器处理此消息,当达到重试限制时,该消息将被转发到错误队列或由分发服务器安排重试。

NServiceBus v3 . x

对于TimeIncreaseNumberOfRetries设置,SLR策略仅对工作者应用。如果在分发服务器上有可用的单反配置,则忽略这些设置。

当发生错误时,工作线程根据SLR TimeIncrease设置调度重试,当触发相应的超时时,消息被转发到分发服务器的传入队列,该队列随后将消息转发给可用的工作线程。

这将导致第一个单反在5分钟后启动…这是你的意图吗?

我在Particular docs

的代码样本上测试了这一点

这个对你有用吗?