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