5

是否可以在 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" />

这看起来很像一个错误。重试行为不应取决于线程数。

4

1 回答 1

1

MaxRetries 的语义是“至少 X 次”。这样做的原因是性能,因为在同步我们的线程时我们不能放松一点。您还可以使您的传输非事务性,这将有效地为您尝试每条消息,但您也会丢失错误队列,因此失败的消息将永远消失。

于 2012-06-25T09:58:04.177 回答