Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 22130|Svar: 3

[Frame] . .NET-resiliens och transient failure-hantering av Polly-omförsöksstrategi

[Kopiera länk]
Publicerad på 2019-05-28 23:54:53 | | | |
Detta inlägg redigerades senast av Kongcida den 29-5-2019 11:16

förord
I ett projekt kommer det att uppstå problem med projektets drift av okontrollerbara skäl. Till exempel ett serverfel, en tjänstekrasch, nätverksavbrott, etc. Om vi stöter på några återkommande fel kan vi använda Polly —— . .NET elastiska och tillfälliga felhanteringsbibliotek. Projektets officiella webbplats (Inloggningen med hyperlänken är synlig.)。 Idag kommer denna artikel att dokumentera Pollys dåliga strategi för att försöka göra om.


Miljö och verktyg


>VS 2017
>Windows 10-system


SMS


1: Skapa en ny konsolapplikation.

2: Citat Polly. Tillgänglig för nedladdning i NuGet-paketet

3: Klistra in koden



4: F6 genereras. Hitta sedan den genererade .exe-filen under debug-mappen – > dubbelklicka för att köra.



Du kan se utgångsmeddelandet: Försökte om tre gånger.

När F5 felsöker kan du också se att denna metod har gjorts tre gånger.


Pollys strategi för omprövning förklaras i detalj

1: Undantagstyp


I denna kod innehåller :handle undantagstypen som ska försökas om. Det vill säga, när den exekverade koden producerar ett specifikt undantag, utförs retry-funktionen. Annars kommer inget nytt försök att genomföras. Eftersom vissa undantag inte kräver ett nytt försök.

Självklart kan vi fylla i ett antal specifika undantagstyper här för att försöka igen.



DivideByZeroException här representerar ett undantag som försöker dividera med noll.
SqlException indikerar ett undantag som aktiveras när SQL Server returnerar ett fel eller en varning. Till exempel felåtkomst i databasen, SQL-exekveringsfel, etc.
SmtpException indikerar ett undantag som posttjänsten lyft. Till exempel misslyckades sändningen, nätverksanslutningen misslyckades och e-postkontoinformationen var onormal.

För specifika undantagstyper, se Microsofts officiella dokumentation:



2: Omprovningstyp

1) Den första typen av omprövning är ett direkt givet antal omförsök. Följande kod har bara försökts om tre gånger.

Vi kan anropa de relevanta handlingarna som utförs vid varje omförsök vid omprövning. Följande kod är en annan uppdrag senare. När man utför ett omförsök skrivs antalet omförsök och anledningen till undantaget ut.



Vi kan också fortsätta försöka kod igen tills det lyckas.



2) Den andra typen av omprövning är att försöka om med jämna mellanrum. Följande kod betyder att försöka igen var 2:e sekund, 7:e eller 10:e sekund. Försök till 10 sekunder. Om genomförandet inte lyckas, avsluta försöket.



Vi kan också försöka igen med jämna mellanrum tills omförsöket lyckas. Detta kräver beräkning av en funktion.



Ovanstående kod avser effektomprövningen av indirekt 2. Till exempel, om exekveringen misslyckas, kommer första gången att göras om med intervaller om 2 sekunder, andra gången med intervaller om 4 sekunder och tredje gången med intervaller om 8 sekunder......... Och så vidare. Tills genomförandet lyckas.



Epilog


Observera: Undantagstyperna i ovanstående kodhantering bör fyllas i enligt den faktiska situationen i ditt projekt. Inte alla undantag kräver ett nytt försök.

Undantagstypen är basklassen för alla undantag. Det är bäst att inte fylla i detta i handtaget, annars får det mycket allvarliga konsekvenser.














Föregående:. Nettointegration PayPal IPN-returvärde har alltid varit OGILTIGT
Nästa:C# Användning av yield-nyckelord
Publicerad på 2019-05-29 09:17:54 |
Jag implementerade själv omprövningsmekanismen i AOP, och till slut upptäckte jag att Polly-biblioteket kan uppfylla mina behov, men min funktion har implementerats, och jag hänvisar till ett tredjepartsbibliotek som kan innehålla lite värdelös kod, vilket inte kan optimera mitt system, så det är inte användbart för tillfället.

Bifogat är min kod:



När jag har tid ska jag också kolla upp Polly
Publicerad på 2019-05-29 09:22:01 |
Xiao Zhaozha Publicerad den 29-09-09-09-2019-09-29
Jag implementerade återförsöksmekanismen själv i aop, och till slut upptäckte jag att Polly-biblioteket kunde uppfylla mina behov, men min funktion har implementerats, och introduktionen ...

Det är inget fel med att själv göra små behov som dessa
Och du bör vänta till nästa gång för att försöka igen
Publicerad på 2019-05-29 09:29:22 |
Vindar publicerades 2019-5-29 09:22
Det är inget fel med att själv göra små behov som dessa
Och ska du vänta till nästa gång för att försöka igen?

Nej, undantaget måste orsakas av samtidighet, datainsättning, uppdatering och raderingskonflikter, men det måste finnas en som körs framgångsrikt, ....... Den utelämnade koden omsluter transaktionen, och undantaget rullas automatiskt tillbaka. Vid andra försöket är konflikten borta, så jag satte ingen väntetid.
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com