Partager via


ExponentialBackOffWithJitter class

Implémente un backoff exponentiel avec une stratégie de nouvelle tentative de gigue. La fonction à calculer l’intervalle suivant est la suivante (x est la nouvelle tentative x) : F(x) = min(Cmin+ (2^(x-1)-1) * rand(C * (1 – Jd), C*(1-Ju)), Cmax)

Constructeurs

ExponentialBackOffWithJitter(boolean, ErrorFilter)

Initialise une nouvelle instance de la classe ExponentialBackOffWithJitter.

Propriétés

immediateFirstRetry

Boolean indiquant si la première nouvelle tentative doit être immédiate (si la valeur est true) ou après le délai normalParameters.c (si la valeur est false).

normalParameters

Paramètres de nouvelle tentative utilisés pour calculer le délai entre chaque nouvelle tentative dans des situations normales (par exemple, non limité).

throttledParameters

Paramètres de nouvelle tentative utilisés pour calculer le délai entre chaque nouvelle tentative dans les situations limitées.

Méthodes

nextRetryTimeout(number, boolean)

Calcule l’intervalle à attendre avant de réessayer à chaque nouvelle tentative de nouvelle tentative.

shouldRetry(Error)

En fonction de l’erreur passée en tant qu’argument, détermine si une erreur est temporaire et si l’opération doit être retentée ou non.

Détails du constructeur

ExponentialBackOffWithJitter(boolean, ErrorFilter)

Initialise une nouvelle instance de la classe ExponentialBackOffWithJitter.

new ExponentialBackOffWithJitter(immediateFirstRetry?: boolean, errorFilter?: ErrorFilter)

Paramètres

immediateFirstRetry

boolean

booléen indiquant si la première nouvelle tentative doit être immédiate (valeur par défaut) ou attendre le premier intervalle (valeur c).

errorFilter

ErrorFilter

Détails de la propriété

immediateFirstRetry

Boolean indiquant si la première nouvelle tentative doit être immédiate (si la valeur est true) ou après le délai normalParameters.c (si la valeur est false).

immediateFirstRetry: boolean

Valeur de propriété

boolean

normalParameters

Paramètres de nouvelle tentative utilisés pour calculer le délai entre chaque nouvelle tentative dans des situations normales (par exemple, non limité).

normalParameters: ExponentialBackoffWithJitterParameters

Valeur de propriété

ExponentialBackoffWithJitterParameters

throttledParameters

Paramètres de nouvelle tentative utilisés pour calculer le délai entre chaque nouvelle tentative dans les situations limitées.

throttledParameters: ExponentialBackoffWithJitterParameters

Valeur de propriété

ExponentialBackoffWithJitterParameters

Détails de la méthode

nextRetryTimeout(number, boolean)

Calcule l’intervalle à attendre avant de réessayer à chaque nouvelle tentative de nouvelle tentative.

function nextRetryTimeout(retryCount: number, isThrottled: boolean): number

Paramètres

retryCount

number

Tentative de nouvelle tentative actuelle.

isThrottled

boolean

Boolean indiquant si le hub Azure IoT limite les opérations.

Retours

number

Délai d’attente avant d’essayer une nouvelle tentative en millisecondes.

shouldRetry(Error)

En fonction de l’erreur passée en tant qu’argument, détermine si une erreur est temporaire et si l’opération doit être retentée ou non.

function shouldRetry(error: Error): boolean

Paramètres

error

Error

Erreur rencontrée par l’opération.

Retours

boolean

Indique si l’opération doit être retentée ou non.