ExponentialBackOffWithJitter class
實作具有抖動重試策略的指數輪詢。 計算下一個間隔的函式是下列 (x 是第 x 次重試) :F (x) = min (Cmin+ (2^ (x-1) -1) * (C * (1 – Jd) C* (1-Ju) ) ,Cmax)
建構函式
Exponential |
初始化 ExponentialBackOffWithJitter 類別的新執行個體。 |
屬性
immediate |
布林值,指出如果設定為 true) 或 normalParameters.c 延遲之後,第一次重試是否應立即 (,如果設定為 false) ,則為 (。 |
normal |
在正常情況下,用來計算每個重試之間的延遲 (重試參數。未節流) 。 |
throttled |
在節流情況下,用來計算每個重試之間的延遲的重試參數。 |
方法
next |
計算在每次新的重試暫訂前等候的間隔。 |
should |
根據傳遞為引數的錯誤,判斷錯誤是否為暫時性,以及是否應重試作業。 |
建構函式詳細資料
ExponentialBackOffWithJitter(boolean, ErrorFilter)
初始化 ExponentialBackOffWithJitter 類別的新執行個體。
new ExponentialBackOffWithJitter(immediateFirstRetry?: boolean, errorFilter?: ErrorFilter)
參數
- immediateFirstRetry
-
boolean
布林值,指出第一次重試是否應立即 (預設) ,或等候第一個間隔 (c 值) 。
- errorFilter
-
ErrorFilter
屬性詳細資料
immediateFirstRetry
布林值,指出如果設定為 true) 或 normalParameters.c 延遲之後,第一次重試是否應立即 (,如果設定為 false) ,則為 (。
immediateFirstRetry: boolean
屬性值
boolean
normalParameters
在正常情況下,用來計算每個重試之間的延遲 (重試參數。未節流) 。
normalParameters: ExponentialBackoffWithJitterParameters
屬性值
ExponentialBackoffWithJitterParameters
throttledParameters
在節流情況下,用來計算每個重試之間的延遲的重試參數。
throttledParameters: ExponentialBackoffWithJitterParameters
屬性值
ExponentialBackoffWithJitterParameters
方法詳細資料
nextRetryTimeout(number, boolean)
計算在每次新的重試暫訂前等候的間隔。
function nextRetryTimeout(retryCount: number, isThrottled: boolean): number
參數
- retryCount
-
number
目前的重試暫訂。
- isThrottled
-
boolean
布林值,指出 Azure IoT 中樞是否正在節流作業。
傳回
number
嘗試重試前,以毫秒為單位的等候時間。
shouldRetry(Error)
根據傳遞為引數的錯誤,判斷錯誤是否為暫時性,以及是否應重試作業。
function shouldRetry(error: Error): boolean
參數
- error
-
Error
作業遇到的錯誤。
傳回
boolean
是否應該重試作業。