|
|
Veröffentlicht am 28.05.2019 23:54:53
|
|
|
|

Dieser Beitrag wurde zuletzt von Kongcida am 29.05.2019 um 11:16 Uhr bearbeitet
Vorwort In einem Projekt gibt es Probleme mit dem Projektbetrieb aus unkontrollierbaren Gründen. Zum Beispiel ein Serverausfall, ein Dienstabsturz, Netzwerkausfall usw. Wenn wir auf wiederholbare Fehler stoßen, können wir Polly —— . .NET elastische und transiente Fehlerbehandlungsbibliotheken. Offizielle Website des Projekts (Der Hyperlink-Login ist sichtbar.)。 Heute wird dieser Artikel Pollys schlechte Wiederholungsstrategie dokumentieren.
Umwelt & Werkzeuge
>VS 2017
>Windows-10-System
Text
1: Erstellen Sie eine neue Konsolenanwendung.
2: Zitat Polly. Verfügbar zum Download im NuGet-Paket
3: Fügen Sie den Code ein
4: F6 erzeugt. Dann sucht man die generierte .exe-Datei unter dem Debug-Ordner – > doppelt klicken, um auszuführen.
Du kannst die Ausgabemeldung sehen: Dreimal erneut versucht.
Wenn F5 debuggt, sieht man auch, dass diese Methode schon dreimal angewendet wurde.
Pollys Wiederholungsstrategie wird ausführlich erklärt
1: Ausnahmetyp
In diesem Code enthält der :handle den Ausnahmetyp, der erneut versucht werden soll. Das heißt, wenn der ausgeführte Code eine bestimmte Ausnahme erzeugt, wird die Retry-Funktion ausgeführt. Andernfalls wird kein erneuter Versuch durchgeführt. Weil einige Ausnahmen keinen erneuten Versuch erfordern.
Natürlich können wir hier eine Reihe spezifischer Ausnahmetypen einfüllen, um es erneut zu versuchen.
Die DivideByZeroException stellt hier eine Ausnahme dar, die versucht, durch Null zu teilen. SqlException zeigt eine Ausnahme an, die ausgelöst wird, wenn SQL Server einen Fehler oder eine Warnung zurückgibt. Zum Beispiel Datenbankverbindungsfehler, SQL-Ausführungsfehler usw. SmtpException zeigt eine vom Postdienst erhobene Ausnahme an. Zum Beispiel schlug das Senden fehl, die Netzwerkverbindung scheiterte und die E-Mail-Kontoinformationen waren abnormal.
Für spezifische Ausnahmetypen siehe bitte die offizielle Microsoft-Dokumentation:
2: Wiederversuchstyp
1) Die erste Art des Wiederversuchens ist eine direkt vorgegebene Anzahl von Wiederholungen. Der folgende Code wird nur dreimal wiederholt.
Wir können die relevanten Aktionen aufrufen, die bei jedem erneuten Versuch durchgeführt werden. Der folgende Code folgt später in einer weiteren Kommission. Beim Wiederholen eines Versuchs werden die Anzahl der Wiederholungen und der Grund für die Ausnahme ausgedruckt.
Wir können den Code auch immer wieder versuchen, bis er erfolgreich ist.
2) Die zweite Art des Wiederholens besteht darin, in Abständen erneut zu versuchen. Der folgende Code bedeutet, alle 2 Sekunden, 7 Sekunden oder 10 Sekunden erneut zu versuchen. Versuche es auf 10 Sekunden erneut. Wenn die Ausführung nicht erfolgreich ist, beenden Sie den erneuten Versuch.
Wir können es auch in Abständen erneut versuchen, bis der Versuch erfolgreich ist. Dies erfordert die Berechnung einer Funktion.
Der obige Code bezieht sich auf die Potenzretry von indirekt 2. Wenn zum Beispiel die Ausführung fehlschlägt, wird das erste Mal in Abständen von 2 Sekunden erneut versucht, das zweite Mal in Abstanden von 4 Sekunden und das dritte Mal in Abständen von 8 Sekunden......... Und so weiter. Bis die Ausführung erfolgreich ist.
Epilog
Hinweis: Die Ausnahmetypen im obigen Code-Handle sollten entsprechend der tatsächlichen Situation in Ihrem Projekt ausgefüllt werden. Nicht alle Ausnahmen erfordern einen erneuten Versuch.
Der Ausnahmetyp ist die Basisklasse für alle Ausnahmen. Es ist am besten, dies nicht in den Griff zu füllen, sonst hat es sehr ernste Konsequenzen.
|
Vorhergehend:. Der Rückgabewert der PayPal-IPN war schon immer UNGÜLTIGNächster:C# Verwendung von Yield-Schlüsselwörtern
|