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的主要版本之间单反的行为是不同的。下面是来自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策略仅对NumberOfRetries和TimeIncrease设置在分发服务器上应用。
分发服务器有一个。retries队列,如果发生错误,消息将被转发到该队列。然后分发服务器处理此消息,当达到重试限制时,该消息将被转发到错误队列或由分发服务器安排重试。
NServiceBus v3 . x
对于TimeIncrease和NumberOfRetries设置,SLR策略仅对工作者应用。如果在分发服务器上有可用的单反配置,则忽略这些设置。
当发生错误时,工作线程根据SLR TimeIncrease设置调度重试,当触发相应的超时时,消息被转发到分发服务器的传入队列,该队列随后将消息转发给可用的工作线程。
这将导致第一个单反在5分钟后启动…这是你的意图吗?
我在Particular docs
的代码样本上测试了这一点这个对你有用吗?