首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TryTimeout for EventHubProducerClient SendAsync

TryTimeout for EventHubProducerClient SendAsync
EN

Stack Overflow用户
提问于 2022-08-31 23:32:26
回答 1查看 34关注 0票数 0

我们可以在使用EventHubProducerClient.SendAsync()创建连接时设置EventHubProducerClientOptions的超时值。

我用10秒初始化了EventHubProducerClientOptions.TryTimeout,并将EventHubProducerClientOptions.MaximumRetries初始化为3。

TryTimeout值适用于每个重试(10秒*3重试)还是TryTimeout值在所有重试之间共享?

示例:

如果每一次重试在失败前花费5秒,那么第一个方法将在15秒后超时,第二个方法将在10秒后超时,然后进行2次重试。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-01 14:21:06

TryTimeout管理单个服务操作。在重试瞬态故障的情况下,EventHubsRetryOptions for MaximumDelayMode和(有时) Delay控制这些尝试之间的延迟。

您将看到调用采取MaximumRetries * TryTimeout *重试策略延迟。对于默认的指数重试模式,延迟包含少量随机抖动,因此无法合理地预测延迟的确切数量。

为了说明,让我们以您的场景为例,假设每个服务操作都超时了。您将看到的模式是:

  • 您的应用程序调用SendAsync
  • 服务操作在10秒后超时(TryTimeout)
  • 故障被认为是暂时的,请参考重试策略并指定延迟。这是由retry选项控制的,它将是<= MaximumDelay值。
  • 重试延迟后,服务操作将进行第二次,10秒后超时。
  • 故障被认为是暂时的,重试策略指定延迟。
  • 重试延迟后,服务操作将进行第三次,并在10秒后超时。
  • 失败被认为是暂时性的,重试策略确认它已退出重试(MaximumRetries被设置为3),并且没有指定延迟。
  • SendAsync的调用将控制返回到应用程序,并引发一个TimeoutException
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73562894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档