我刚刚开始在 Azure 上使用 NServiceBus,由于某种原因,当消息处理程序引发异常时,需要很长时间才能完成第一级重试。重试次数设置为 5 时,需要 20 多分钟才能开始第二级重试。
是什么导致延迟?
这是我配置总线的方式:
Configure.Transactions.Advanced(s =>
{
s.DisableDistributedTransactions();
s.DoNotWrapHandlersExecutionInATransactionScope();
});
Configure.With()
.AutofacBuilder(container)
.DefiningCommandsAs(t => t.IsCommand())
.DefiningEventsAs(t => t.IsEvent())
.XmlSerializer()
.MessageForwardingInCaseOfFault()
.AzureConfigurationSource()
.UseTransport<AzureStorageQueue>()
.AzureDiagnosticsLogger()
.AzureMessageQueue()
.AzureSubcriptionStorage()
.UseAzureTimeoutPersister()
.UnicastBus()
.RunHandlersUnderIncomingPrincipal(false);
仅供参考:截至今天,我正在使用从开发分支构建并在模拟器中运行的 NServiceBus。