|
|
Publisert på 28.05.2019 23:54:53
|
|
|
|

Dette innlegget ble sist redigert av Kongcida 29.05.2019 kl. 11:16
forord I et prosjekt vil det oppstå problemer med prosjektets drift på grunn av ukontrollerbare årsaker. For eksempel en serverfeil, et tjenestekrasj, nettverksbrudd, osv. Hvis vi støter på noen gjentatte feil, kan vi bruke Polly —— . .NET elastiske og midlertidige feilhåndteringsbiblioteker. Prosjektets offisielle nettsideadresse (Innloggingen med hyperkoblingen er synlig.)。 I dag vil denne artikkelen dokumentere Pollys dårlige retry-strategi.
Miljø og verktøy
>VS 2017
>Windows 10-system
Tekst
1: Lag en ny konsollapplikasjon.
2: Sitat Polly. Tilgjengelig for nedlasting i NuGet-pakken
3: Lim inn koden
4: F6 genererer. Finn deretter den genererte .exe-filen under debug-mappen – > dobbeltklikk for å kjøre.
Du kan se utdatameldingen: Prøvd på nytt tre ganger.
Når F5 feilsøker, kan du også se at denne metoden har blitt brukt tre ganger.
Pollys strategi for omprøving forklares i detalj
1: Unntakstype
I denne koden inneholder :handle unntakstypen som skal prøves på nytt. Det vil si, når den utførte koden produserer et spesifikt unntak, utføres retry-funksjonen. Ellers vil det ikke bli utført noe nytt forsøk. Fordi noen unntak ikke krever et nytt forsøk.
Selvfølgelig kan vi fylle inn en rekke spesifikke unntakstyper her for å prøve på nytt.
DivideByZeroException her representerer et unntak som forsøker å dele på null. SqlException indikerer et unntak som utløses når SQL Server returnerer en feil eller advarsel. For eksempel feilaktig databasetilkobling, SQL-kjøringsfeil, osv. SmtpException indikerer et unntak som er reist av posttjenesten. For eksempel mislyktes sendingen, nettverkstilkoblingen feilet, og e-postkontoinformasjonen var unormal.
For spesifikke unntakstyper, vennligst se Microsofts offisielle dokumentasjon:
2: Retry-type
1) Den første typen forsøk er et direkte gitt antall forsøk. Følgende kode blir bare prøvd på nytt 3 ganger.
Vi kan kalle de relevante handlingene som utføres ved hvert forsøk på nytt. Følgende kode er en annen kommisjon senere. Når man utfører et nytt forsøk, skrives antall forsøk og årsaken til unntaket ut.
Vi kan også fortsette å prøve koden på nytt til det lykkes.
2) Den andre typen forsøk er å prøve på nytt med jevne mellomrom. Følgende kode betyr å prøve på nytt hvert 2. sekund, 7. sekund eller 10. sekund. Prøv igjen til 10 sekunder. Hvis utførelsen ikke lykkes, avslutt forsøket på nytt.
Vi kan også prøve igjen med jevne mellomrom til forsøket lykkes. Dette krever beregning av en funksjon.
Koden ovenfor refererer til potensforsøket til indirekte 2. For eksempel, hvis utførelsen mislykkes, vil første gang bli prøvd på nytt med intervaller på 2 sekunder, andre gang med intervaller på 4 sekunder, og tredje gang med intervaller på 8 sekunder......... Og så videre. Inntil gjennomføringen lykkes.
Epilog
Merk: Unntakstypene i kodehåndtaket ovenfor bør fylles ut i henhold til den faktiske situasjonen i ditt faktiske prosjekt. Ikke alle unntak krever et nytt forsøk.
Unntakstypen er basisklassen for alle unntak. Det er best å ikke fylle dette i håndtaket, ellers vil det få svært alvorlige konsekvenser.
|
Foregående:. Nettintegrasjon PayPal IPN returverdi har alltid vært UGYLDIGNeste:C# Bruk av yield-nøkkelord
|