是否可以在NServiceBus版本3.2.2中禁用重试?
使用以下配置,可以禁用重试:
<MsmqTransportConfig NumberOfWorkerThreads="1"
MaxRetries="0" />
<SecondLevelRetriesConfig Enabled="false"
TimeIncrease="00:00:10"
NumberOfRetries="0" />
Run Code Online (Sandbox Code Playgroud)
但是当线程计数设置为20时则不行.在这种情况下,重试消息两次:
<MsmqTransportConfig NumberOfWorkerThreads="20"
MaxRetries="0" />
<SecondLevelRetriesConfig Enabled="false"
TimeIncrease="00:00:10"
NumberOfRetries="0" />
Run Code Online (Sandbox Code Playgroud)
这看起来很像一个bug.重试行为不应该取决于线程数.
MaxRetries 的语义是“至少 X 次”。这样做的原因是性能,因为在同步线程时我们不能再放松一点了。您还可以使传输成为非事务性的,这将有效地为您提供每条消息一次尝试的机会,但您也会丢失错误队列,因此失败的消息将永远消失。
| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |