Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 22130|Svar: 3

[Frame] . .NET-robusthed og transient failure-håndtering af Polly-genprøvningsstrategi

[Kopier link]
Opslået på 28/05/2019 23.54.53 | | | |
Dette indlæg blev sidst redigeret af Kongcida den 29-5-2019 kl. 11:16

forord
I et projekt vil der være problemer med projektets drift af ukontrollerbare årsager. For eksempel en serverfejl, et servicenedbrud, netværksafbrydelse osv. Hvis vi støder på nogle gentagne fejl, kan vi bruge Polly —— . .NET elastiske og transiente fejlhåndteringsbiblioteker. Projektets officielle hjemmesideadresse (Hyperlink-login er synlig.)。 I dag vil denne artikel dokumentere Pollys dårlige retry-strategi.


Miljø & Værktøjer


>VS 2017
>Windows 10-system


Tekst


1: Opret en ny konsolapplikation.

2: Citat Polly. Tilgængelig til download i NuGet-pakken

3: Indsæt koden



4: F6 genererer. Find derefter den genererede .exe-fil under debug-mappen – > dobbeltklik for at køre.



Du kan se output-beskeden: Prøvet tre gange.

Når F5 fejlfinder, kan du også se, at denne metode er blevet brugt tre gange.


Pollys genforsøgsstrategi forklares i detaljer

1: Undtagelsestype


I denne kode indeholder :handle undtagelsestypen, der skal prøves igen. Det vil sige, når den udførte kode producerer en specifik undtagelse, udføres genprøvningsfunktionen. Ellers vil der ikke blive foretaget en ny prøve. Fordi nogle undtagelser ikke kræver en ny prøve.

Selvfølgelig kan vi udfylde en række specifikke undtagelsestyper her for at prøve igen.



DivideByZeroException her repræsenterer en undtagelse, der forsøger at dividere med nul.
SqlException indikerer en undtagelse, der aktiveres, når SQL Server returnerer en fejl eller advarsel. For eksempel databaseforbindelsesfejl, SQL-eksekveringsfejl osv.
SmtpException angiver en undtagelse, som postvæsenet har rejst. For eksempel mislykkedes afsendelsen, netværksforbindelsen fejlede, og e-mailkontooplysningerne var unormale.

For specifikke undtagelsestyper, henvis til Microsofts officielle dokumentation:



2: Gentagelsestype

1) Den første type genforsøg er et direkte givet antal omprøvninger. Følgende kode bliver kun prøvet igen 3 gange.

Vi kan kalde de relevante handlinger, der udføres ved hvert forsøg, når vi prøver igen. Følgende kode er en anden kommission senere. Når man udfører et forsøg, udskrives antallet af forsøg og årsagen til undtagelsen.



Vi kan også lade koden prøve igen, indtil det lykkes.



2) Den anden type forsøg er at gentage med jævne mellemrum. Følgende kode betyder, at man skal prøve igen hvert 2. sekund, 7. sekund eller 10. sekund. Prøv igen til 10 sekunder. Hvis udførelsen ikke lykkes, afslutes forsøget.



Vi kan også prøve igen med jævne mellemrum, indtil forsøget lykkes. Dette kræver beregning af en funktion.



Ovenstående kode henviser til potensforsøget af indirekte 2. For eksempel, hvis udførelsen fejler, vil første gang blive prøvet igen med intervaller på 2 sekunder, anden gang med intervaller på 4 sekunder, og tredje gang med intervaller på 8 sekunder......... Og så videre. Indtil udførelsen lykkes.



Epilog


Bemærk: Undtagelsestyperne i ovenstående kodehåndtering bør udfyldes i henhold til den faktiske situation i dit projekt. Ikke alle undtagelser kræver et nyt forsøg.

Undtagelsestypen er basisklassen for alle undtagelser. Det er bedst ikke at fylde dette i håndtaget, ellers vil det få meget alvorlige konsekvenser.














Tidligere:. Netintegration PayPal IPN returnværdi har altid været UGYLDIG
Næste:C# Brug af yield-nøgleord
Opslået på 29/05/2019 09.17.54 |
Jeg implementerede selv genprøvningsmekanismen i AOP, og til sidst fandt jeg ud af, at Polly-biblioteket kan opfylde mine behov, men min funktion er implementeret, og jeg henviser til et tredjepartsbibliotek, som måske har noget ubrugelig kode i sig, som ikke kan optimere mit system, så det er ikke brugbart lige nu.

Vedhæftet er min kode:



Når jeg har tid, vil jeg også undersøge Polly
Opslået på 29/05/2019 09.22.01 |
Xiao Zhaozha Opslået den 29-5-2019 09:17
Jeg implementerede selv genprøvningsmekanismen i aop, og til sidst fandt jeg ud af, at Polly-biblioteket kunne opfylde mine behov, men min funktion er blevet implementeret, og introduktionen ...

Der er ikke noget galt i selv at tage sig af små behov som disse
Og du bør vente til næste gang med at prøve igen
Opslået på 29/05/2019 09.29.22 |
Vindene blev offentliggjort den 29-5-2019 09:22
Der er ikke noget galt i selv at tage sig af små behov som disse
Og bør du vente til næste gang med at prøve igen?

Nej, undtagelsen skal skyldes samtidighed, dataindsættelse, opdatering og sletningskonflikter, men der skal være én, der kan køre succesfuldt, ....... Den udeladte kode indkapsler transaktionen, og undtagelsen vil automatisk blive rullet tilbage. Ved anden omgang er konflikten væk, så jeg satte ikke en ventetid.
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com