gpt4 book ai didi

c# - 如何在 Azure 服务总线客户端的 RetryPolicy 对象中使用 TimeBuffer 属性?

转载 作者:行者123 更新时间:2023-12-03 04:15:02 25 4
gpt4 key购买 nike

我已阅读文档,并且关于如何在 Azure 服务总线队列客户端中使用 RetryPolicy 对象的所有详细信息对我来说都很清楚,除了一个:TimeBuffer 属性。文档中的定义说:

"The termination time buffer associated with the retry. Retry attempts will be abandoned if the remaining time is less than TimeBuffer."

但是,“剩余时间”是多少?有人可以举例说明如何使用它吗?

以下是我对这种情况的看法:如果请求失败并且错误是暂时的,则将重复操作,直到成功或达到 MaxRetryCount。同时,尝试之间的间隔将根据 MinimalBackoff 和 DeltaBackoff 增长,直到达到 MaximumBackoff。从那时起,尝试之间的间隔将是恒定的并且等于 MaximumBackoff。在这个场景中TimeBuffer是如何使用的?

还有一件事我忘记了,所以我编辑了这个问题。当仅允许设置这些值的构造函数已过时,并且 DeltaBackoff 属性没有 setter 且为只读时,如何设置 DeltaBackoff 和 TimeBuffer?

最佳答案

TerminationTimeBuffer 是一个属性,用于限制操作完成的总时间。

与重试相关的终止时间缓冲区。如果剩余时间小于TimeBuffer,重试尝试将被放弃。

考虑具有以下配置的场景

MinimumBackoff = 0  
MaximumBackoff = 30 sec
DeltaBackoff = 300 msec
TimeBuffer = 300 msec
MaxRetryCount = 2

它的工作原理是

Attempt 1: Delay 0 sec   
Attempt 2: Delay ~300 msec
Attempt 3: Delay ~900 msec

这里,第二次尝试后的“剩余时间”为 29.7 秒,第三次尝试后的“剩余时间”为 29.1 秒。

关于c# - 如何在 Azure 服务总线客户端的 RetryPolicy 对象中使用 TimeBuffer 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53857385/

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