Freigeben über


RetryPolicy Klasse

  • java.lang.Object
    • com.microsoft.azure.servicebus.primitives.RetryPolicy

public abstract class RetryPolicy

Stellt eine Abstraktion einer Richtlinie zum Wiederholen von Messagingvorgängen dar, wenn eine Ausnahme auftritt. Einige Ausnahmen, die von einem Absender oder Empfänger gefunden werden, können vorübergehend sein, z. B. ServerBusy, und der Vorgang ist erfolgreich, wenn ein erneuter Vorgang ausgeführt wird. Clients können eine Wiederholungsrichtlinie angeben, die ConnectionStringBuilder Absender und Empfänger dazu leitet, den fehlgeschlagenen Vorgang automatisch zu wiederholen, bevor die Ausnahme für die Clientanwendung ausgelöst wird. Benutzer sollten diese Klasse nicht implementieren, sondern stattdessen eine der bereitgestellten Implementierungen über #getDefault oder #getNoRetryverwenden.

Zusammenfassung zum Konstruktor

Modifizierer Konstruktor Beschreibung
protected RetryPolicy(String name)

Erstellt eine instance der Wiederholungsrichtliniemit dem angegebenen Namen.

Methodenzusammenfassung

Modifizierer und Typ Methode und Beschreibung
static RetryPolicy getDefault()

Wiederholungsrichtlinie, die exponentiell steigende Wiederholungsintervalle mit jedem aufeinanderfolgenden Fehler bereitstellt.

Duration getNextRetryInterval(String clientId, Exception lastException, Duration remainingTime)

Ruft das Intervall ab, nach dem die nächsteWiederholung basierend auf der letzten gefundenen Ausnahme und der verbleibenden Zeit vor dem Timeout des Vorgangs versucht werden soll.

static RetryPolicy getNoRetry()

Ruft eine Wiederholungsrichtlinie ab, die keine Vorgänge wiederholt und Wiederholungen effektiv deaktiviert.

protected int getRetryCount(String clientId)
void incrementRetryCount(String clientId)

Erhöht die Anzahl der aufeinanderfolgenden Wiederholungsversuche eines Clients.

static boolean isRetryableException(Exception exception)

Bestimmt, ob eine Ausnahme wiederholungsfähig ist oder nicht.

protected abstract Duration onGetNextRetryInterval(String clientId, Exception lastException, Duration remainingTime, int baseWaitTime)

Passt das Intervall an, nach dem der nächsteWiederholungsversuch versucht werden soll, basierend auf der letzten ausnahme, der verbleibenden Zeit vor dem Timeout des Vorgangs und der minimalen Wartezeit vor dem Wiederholungsversuch.

void resetRetryCount(String clientId)

Setzt die Anzahl der von einem Client durchgeführten Wiederholungsversuche zurück.

String toString()

Geerbte Methoden von java.lang.Object

Details zum Konstruktor

RetryPolicy

protected RetryPolicy(String name)

Erstellt eine instance von RetryPolicy mit dem angegebenen Namen.

Parameter:

name - Name der Richtlinie

Details zur Methode

getDefault

public static RetryPolicy getDefault()

Wiederholungsrichtlinie, die exponentiell steigende Wiederholungsintervalle mit jedem aufeinanderfolgenden Fehler bereitstellt. Diese Richtlinie eignet sich für die Verwendung der meisten Clientanwendungen und ist auch die Standardrichtlinie, wenn keine Wiederholungsrichtlinie angegeben ist.

Gibt zurück:

Eine Wiederholungsrichtlinie, die exponentiell steigende Wiederholungsintervalle bereitstellt

getNextRetryInterval

public Duration getNextRetryInterval(String clientId, Exception lastException, Duration remainingTime)

Ruft das Intervall ab, nach dem nextRetry basierend auf der letzten gefundenen Ausnahme und der verbleibenden Zeit vor dem Timeout des Vorgangs versucht werden soll.

Parameter:

clientId - id des Absenders, Empfängers oder Clientobjekts, bei dem die Ausnahme aufgetreten ist.
lastException - Letzte Ausnahme gefunden
remainingTime - restZeit für wiederholungsversuche, bevor das Timeout des Vorgangs auftritt

Gibt zurück:

Dauer, nach der der Vorgang wiederholt wird. Gibt NULL zurück, wenn der Vorgang nicht wiederholt werden soll.

getNoRetry

public static RetryPolicy getNoRetry()

Ruft eine Wiederholungsrichtlinie ab, die keine Vorgänge wiederholt und Wiederholungen effektiv deaktiviert. Clients können diese Wiederholungsrichtlinie verwenden, falls ein Vorgang nicht automatisch wiederholt werden soll.

Gibt zurück:

Eine Wiederholungsrichtlinie, die keine Vorgänge wiederholt

getRetryCount

protected int getRetryCount(String clientId)

Parameter:

clientId

incrementRetryCount

public void incrementRetryCount(String clientId)

Erhöht die Anzahl der aufeinanderfolgenden Wiederholungsversuche eines Clients.

Parameter:

clientId - ID des Clients, der einen fehlgeschlagenen Vorgang wiederholt

isRetryableException

public static boolean isRetryableException(Exception exception)

Bestimmt, ob eine Ausnahme wiederholungsfähig ist oder nicht. Es sollten nur vorübergehende Ausnahmen wiederholt werden.

Parameter:

exception - Ausnahme, die von einem Vorgang gefunden wird, um zu bestimmen, ob er wiederholungsfähig ist.

Gibt zurück:

true, wenn die Ausnahme wiederholungsfähig ist (z. B. ServerBusy oder eine andere vorübergehende Ausnahme), andernfalls wird false zurückgegeben.

onGetNextRetryInterval

protected abstract Duration onGetNextRetryInterval(String clientId, Exception lastException, Duration remainingTime, int baseWaitTime)

Passt das Intervall an, nach dem nextRetry versucht werden soll, basierend auf der letzten gefundenen Ausnahme, der verbleibenden Zeit vor dem Timeout des Vorgangs und der minimalen Wartezeit vor dem Wiederholungsversuch. Clients können diese Methode überschreiben, um eine Wartezeit basierend auf der aufgetretenen Ausnahme anzugeben.

Parameter:

clientId - id des Absenders, Empfängers oder Clientobjekts, bei dem die Ausnahme aufgetreten ist.
lastException - Letzte Ausnahme gefunden
remainingTime - restZeit für wiederholungsversuche, bevor das Timeout des Vorgangs auftritt
baseWaitTime - Mindestwartezeit, die durch die Basis-Wiederholungsrichtlinie bestimmt wird. Überschreiben von Methoden kann einen anderen Wert zurückgeben.

Gibt zurück:

Dauer, nach der der Vorgang wiederholt wird. Gibt NULL zurück, wenn der Vorgang nicht wiederholt werden soll.

resetRetryCount

public void resetRetryCount(String clientId)

Setzt die Anzahl der von einem Client durchgeführten Wiederholungsversuche zurück. Diese Methode wird vom Client aufgerufen, wenn der Wiederholungsvorgang erfolgreich ist.

Parameter:

clientId - id des Clients, der gerade einen fehlgeschlagenen Vorgang wiederholt hat und erfolgreich war.

toString

public String toString()

Überschreibt:

RetryPolicy.toString()

Gilt für: