0

代码中没有自定义配置。

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

它基于默认的 SecondLevelRetriesConfig 值而不采用自定义配置。

更新:

很抱歉没有更新场景。当 nservicebus worker 为 MasternodeConfig 进行配置时,就会发生这种情况。它不考虑二级重试的工作节点配置。超时在 MasterNode (Distributor) 中处理。

4

2 回答 2

1

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

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

NServiceBus v5.x

SLR 策略NumberOfRetries设置应用于分发服务器和工作人员,而TimeIncrease设置应用于分发服务器。

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

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

NServiceBus v4.x

SLR 策略仅适用于NumberOfRetriesTimeIncrease设置的分发服务器。

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

NServiceBus v3.x

SLR 策略仅适用TimeIncreaseNumberOfRetries设置的工作人员。如果 SLR 配置在分配器上可用,则这些设置将被忽略。

当发生错误时,worker 根据 SLR TimeIncrease 设置安排重试,当触发相应的超时时,消息将转发到分发器的传入队列,然后分发器将消息转发到可用的工作器。

于 2015-10-07T19:30:36.843 回答
0

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

我在 Particular docs whebsite的代码示例上对此进行了测试

这对你有用吗?

于 2015-10-03T17:46:21.557 回答