我们可以在使用EventHubProducerClient.SendAsync()创建连接时设置EventHubProducerClientOptions的超时值。
我用10秒初始化了EventHubProducerClientOptions.TryTimeout,并将EventHubProducerClientOptions.MaximumRetries初始化为3。
TryTimeout值适用于每个重试(10秒*3重试)还是TryTimeout值在所有重试之间共享?
示例:
如果每一次重试在失败前花费5秒,那么第一个方法将在15秒后超时,第二个方法将在10秒后超时,然后进行2次重试。
发布于 2022-09-01 14:21:06
TryTimeout管理单个服务操作。在重试瞬态故障的情况下,EventHubsRetryOptions for MaximumDelay、Mode和(有时) Delay控制这些尝试之间的延迟。
您将看到调用采取MaximumRetries * TryTimeout *重试策略延迟。对于默认的指数重试模式,延迟包含少量随机抖动,因此无法合理地预测延迟的确切数量。
为了说明,让我们以您的场景为例,假设每个服务操作都超时了。您将看到的模式是:
SendAsyncTryTimeout)MaximumDelay值。MaximumRetries被设置为3),并且没有指定延迟。SendAsync的调用将控制返回到应用程序,并引发一个TimeoutException。https://stackoverflow.com/questions/73562894
复制相似问题