Implementieren einer Wiederholungsrichtlinie mit JavaScript oder TypeScript
Jede Anwendung, die in der Cloud ausgeführt wird oder mit Remotediensten und Ressourcen kommuniziert, muss vorübergehende Fehler verarbeiten können. Es ist üblich, dass bei diesen Anwendungen Fehler auftreten. Gründe dafür könnten ein vorübergehender Verlust der Netzwerkkonnektivität, ein Anforderungstimeout, das eintritt, wenn ein Dienst oder eine Ressource stark beansprucht wird, oder andere Faktoren sein. Entwickler sollten Anwendungen erstellen, die vorübergehende Fehler transparent verarbeiten, um die Stabilität und Resilienz zu verbessern.
In diesem Artikel erfahren Sie, wie Sie mithilfe der Azure Storage-Clientbibliothek für JavaScript eine Wiederholungsrichtlinie für eine Anwendung konfigurieren, die eine Verbindung mit Azure Blob Storage herstellt. Wiederholungsrichtlinien definieren, wie die Anwendung fehlgeschlagene Anforderungen verarbeitet, und sollten immer angepasst werden, damit sie den geschäftlichen Anforderungen der Anwendung und der Art des Fehlers entsprechen.
Konfigurieren von Wiederholungsoptionen
Wiederholungsrichtlinien für Blob Storage werden programmgesteuert konfiguriert und bieten Kontrolle darüber, wie Wiederholungsoptionen auf verschiedene Dienstanforderungen und Szenarien angewendet werden. Beispielsweise kann eine Web-App, die Anforderungen basierend auf der Benutzerinteraktion ausgibt, eine Richtlinie mit weniger Wiederholungen und kürzeren Verzögerungen implementieren. Dadurch wird die Reaktionsfähigkeit erhöht und der Benutzer benachrichtigt, wenn ein Fehler auftritt. Alternativ kann eine App oder Komponente, die Batchanforderungen im Hintergrund ausführt, die Anzahl der Wiederholungen erhöhen und eine exponentielle Backoff-Strategie verwenden. Somit wird ein erfolgreicher Abschluss der Anforderungszeit ermöglicht.
In der folgenden Tabelle sind die Parameter, die beim Erstellen einer StorageRetryOptions-Instanz verfügbar sind, zusammen mit dem Typ, einer kurzen Beschreibung und dem Standardwert aufgeführt, wenn Sie keine Änderungen vornehmen. Sie sollten die Werte dieser Eigenschaften proaktiv optimieren, um die Anforderungen Ihrer App zu erfüllen.
Eigenschaft | Typ | BESCHREIBUNG | Standardwert |
---|---|---|---|
maxRetryDelayInMs |
number |
Optional. Gibt die maximale Verzögerung an, die vor dem Wiederholen eines Vorgangs zulässig ist. | 120 Sekunden (oder 120 · 1.000 ms) |
maxTries |
number |
Optional. Die maximale Anzahl der Wiederholungsversuche, bevor der Vorgang abgebrochen wird. | 4 |
retryDelayInMs |
number |
Optional. Gibt die Verzögerung an, die vor dem Wiederholen eines Vorgangs verwendet werden soll. | 4 Sekunden (oder 4 · 1.000 ms) |
retryPolicyType |
StorageRetryPolicyType | Optional. StorageRetryPolicyType, Standardwert: exponentielle Wiederholungsrichtlinie | StorageRetryPolicyType.Exponential |
secondaryHost |
string |
Optional. Endpunkt des sekundären Speicherkontos zum Wiederholen von Anforderungen. Bevor Sie diesen Wert festlegen, sollten Sie die Probleme beim Lesen veralteter und potenziell inkonsistenter Daten verstehen. Weitere Informationen erhalten Sie unter Verwenden von Georedundanz zum Entwerfen hochverfügbarer Anwendungen. | Keine |
tryTimeoutInMs |
number |
Optional. Maximal zulässige Zeit, bevor eine Anforderung abgebrochen und als fehlgeschlagen betrachtet wird. Dieses Timeout gilt für die Vorgangsanforderung und sollte auf der für den Hostcomputer verfügbaren Bandbreite und der Nähe zum Speicherdienst basieren. | Bei einem Wert von 0 oder bei nicht festgelegtem Wert kommt es zu keinem Standardtimeout auf dem Client, sondern es wird das serverseitige Standardtimeout verwendet. Weitere Informationen finden Sie unter Timeouts für Blob-Dienstvorgänge. |
Im folgenden Codebeispiel konfigurieren wir die Wiederholungsoptionen in einer Instanz von StorageRetryOptions, übergeben sie an eine neue StoragePipelineOptions-Instanz und übergeben pipeline
beim Instanziieren von BlobServiceClient
:
const options = {
retryOptions: {
maxTries: 4,
retryDelayInMs: 3 * 1000,
maxRetryDelayInMs: 120 * 1000,
retryPolicyType: StorageRetryPolicyType.EXPONENTIAL
},
};
const pipeline = newPipeline(credential, options);
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
credential,
pipeline
);
In diesem Beispiel verwendet jede Dienstanforderung, die vom BlobServiceClient
-Objekt ausgegeben wurde, die Wiederholungsoptionen wie in retryOptions
definiert. Diese Richtlinie gilt für Clientanforderungen. Basierend auf den Anforderungen Ihrer App können Sie verschiedene Wiederholungsstrategien für Dienstclients konfigurieren.
Zugehöriger Inhalt
- Ein Leitfaden zur Architektur und allgemeine bewährte Methoden für Wiederholungsrichtlinien finden Sie unter Behandeln vorübergehender Fehler.
- Leitfäden zum Implementieren eines Wiederholungsmusters für vorübergehende Fehler finden Sie unter Wiederholungsmuster.