Dit bericht is voor het laatst bewerkt door Kongcida op 29-5-2019 11:16
inleiding In een project zullen er problemen zijn met de uitvoering van het project door oncontroleerbare redenen. Bijvoorbeeld een serverstoring, een servicecrash, netwerkstoring, enzovoort. Als we enkele herhaalbare fouten tegenkomen, kunnen we Polly gebruiken —— . .NET elastische en tijdelijke foutafhandelingsbibliotheken. Officieel websiteadres van het project (De hyperlink-login is zichtbaar.)。 Vandaag zal dit artikel Polly's slechte herkansingsstrategie documenteren.
Omgeving & Hulpmiddelen
>VS 2017
>Windows 10-systeem
Sms
1: Maak een nieuwe consoleapplicatie aan.
2: Citeer Polly. Beschikbaar voor download in het NuGet-pakket
3: Plak de code
4: F6 genereert. Zoek vervolgens het gegenereerde .exe-bestand onder de debugmap – > dubbelklik om het uit te voeren.
Je ziet het uitvoerbericht: Drie keer opnieuw geprobeerd.
Wanneer F5 debuggt, zie je ook dat deze methode al drie keer is toegepast.
Polly's herkansingsstrategie wordt uitvoerig uitgelegd
1: Uitzonderingstype
In deze code bevat de :handle het uitzonderingstype dat opnieuw geprobeerd moet worden. Dat wil zeggen, wanneer de uitgevoerde code een specifieke uitzondering produceert, wordt de retry-functie uitgevoerd. Anders wordt er geen herpoging uitgevoerd. Omdat sommige uitzonderingen geen herpogingspoging vereisen.
Natuurlijk kunnen we hier een aantal specifieke uitzonderingstypen invullen om opnieuw te proberen.
De DivideByZeroException vertegenwoordigt hier een uitzondering die probeert te delen door nul. SqlException geeft een uitzondering aan die wordt geactiveerd wanneer SQL Server een foutmelding of waarschuwing geeft. Bijvoorbeeld, databaseverbinding mislukt, SQL-uitvoeringsfout, enzovoort. SmtpException duidt op een uitzondering die door de postdienst is geïntroduceerd. Bijvoorbeeld, het verzenden mislukte, de netwerkverbinding faalde en de e-mailaccountinformatie was abnormaal.
Voor specifieke uitzonderingstypes, raadpleeg de officiële documentatie van Microsoft:
2: Type herpoging
1) Het eerste type herpoging is een direct gegeven aantal herkansingen. De volgende code wordt slechts 3 keer opnieuw geprobeerd.
We kunnen de relevante acties aanroepen die bij elke herpoging worden uitgevoerd. De volgende code volgt later in een andere opdracht. Bij het uitvoeren van een herpoging worden het aantal herpogingen en de reden voor de uitzondering afgedrukt.
We kunnen de code ook blijven herhalen totdat het lukt.
2) Het tweede type herhaling is om het op intervallen opnieuw te proberen. De volgende code betekent dat je elke 2 seconden, 7 seconden of 10 seconden opnieuw moet proberen. Probeer het opnieuw tot 10 seconden. Als de uitvoering niet succesvol is, beëindig dan de herkansing.
We kunnen het ook opnieuw proberen op intervallen totdat de herhaling succesvol is. Dit vereist de berekening van een functie.
De bovenstaande code verwijst naar de machtsretry van indirect 2. Als de uitvoering bijvoorbeeld mislukt, wordt de eerste keer opnieuw geprobeerd met intervallen van 2 seconden, de tweede keer met intervallen van 4 seconden, en de derde keer opnieuw geprobeerd met intervallen van 8 seconden......... En zo verder. Totdat de uitvoering succesvol is.
Epiloog
Opmerking: De uitzonderingstypen in de bovenstaande code Handle moeten worden ingevuld volgens de werkelijke situatie in je project. Niet alle uitzonderingen vereisen een herkansing.
Het uitzonderingstype is de basisklasse voor alle uitzonderingen. Het is het beste om dit niet in het handvat te vullen, anders heeft het zeer ernstige gevolgen.
|