gpt4 book ai didi

azure - 为什么需要这么长时间才能通过第一级重试?

转载 作者:行者123 更新时间:2023-12-03 06:04:13 27 4
gpt4 key购买 nike

我刚刚开始在 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,并在模拟器中运行。

最佳答案

哦,我误读了这个问题,我以为上次重试后需要 20 分钟才能启动第二级。但我知道这是什么并且它是可配置的!

为了支持批处理(以降低成本),消息可见时间的计算方法是将单个 MessageInvisibleTime 乘以 BatchSize 中的金额,默认 MessageInvisibleTime 为 30000(毫秒),默认 BatchSize 为 10。再次乘以 5第一级重试,您将在第一个异常发生之前 25 分钟内结束并开始第二级。

如果您愿意,可以重新配置它:MessageInvisibleTime 和 BatchSize 是 AzureQueueConfig 上的一个属性,MaxRetries 位于 TransportConfig(4.0 中)或 MsmqTransportConfig(3.X 中)上

关于azure - 为什么需要这么长时间才能通过第一级重试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16552556/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com