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 策略仅适用于NumberOfRetries和TimeIncrease设置的分发服务器。
分发器有一个.retries队列,在发生错误时将消息转发到该队列。然后分发器处理此消息,当达到重试限制时,消息将被转发到错误队列或由分发器安排重试。
NServiceBus v3.x
SLR 策略仅适用于TimeIncrease和NumberOfRetries设置的工作人员。如果 SLR 配置在分配器上可用,则这些设置将被忽略。
当发生错误时,worker 根据 SLR TimeIncrease 设置安排重试,当触发相应的超时时,消息将转发到分发器的传入队列,然后分发器将消息转发到可用的工作器。