ExponentialBackOffWithJitter class

實作具有抖動重試策略的指數輪詢。 計算下一個間隔的函式如下(x 是 x 次重試):F(x) = min(Cmin+ (2^(x-1)-1) * rand(C * (1 – Jd), C*(1-Ju)), Cmax)

屬性

immediateFirstRetry

布爾值,指出第一次重試是否應立即進行(如果設定為 true),或在 normalParameters.c 延遲之後(如果設定為 false)。

normalParameters

在正常情況下,用來計算每個重試之間的延遲的重試參數(亦即未節流)。

throttledParameters

重試參數,用來計算節流情況下每個重試之間的延遲。

方法

nextRetryTimeout(number, boolean)

計算在每次新的重試暫定重試之前要等候的間隔。

shouldRetry(Error)

根據傳遞為自變數的錯誤,判斷錯誤是否為暫時性,以及是否應該重試作業。

建構函式詳細資料

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

是否應該重試作業。