Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 22130|Odgovoriti: 3

[Frame] . .NET odpornost in obvladovanje prehodnih okvar Pollyjeva strategija ponovnega poskusa

[Kopiraj povezavo]
Objavljeno na 28. 05. 2019 23:54:53 | | | |
To objavo je nazadnje uredil Kongcida 29. 5. 2019 ob 11:16

predgovor
V projektu se lahko pojavijo težave pri delovanju zaradi neobvladljivih razlogov. Na primer, okvara strežnika, zrušitev storitve, izpad omrežja itd. Ker naletimo na nekatere napake, ki jih je mogoče ponovno preizkusiti, lahko uporabimo Polly —— . .NET Elastične in prehodne knjižnice za obravnavo napak. Uradni naslov spletne strani projekta (Prijava do hiperpovezave je vidna.)。 Danes bo ta članek dokumentiral Pollyjino strategijo slabega ponovnega poskusa.


Okolje in orodja


>VS 2017
>Sistem Windows 10


Besedilno sporočilo


1: Ustvarite novo konzolno aplikacijo.

2: Citiram Polly. Na voljo za prenos v paketu NuGet

3: Prilepi kodo



4: F6 generira. Nato poiščite ustvarjeno .exe datoteko v mapi za razhroščevanje – > dvakrat kliknite za zagon.



Vidite lahko izhodno sporočilo: Poskusite trikrat.

Ko F5 odpravlja napake, lahko vidite, da je bila ta metoda uporabljena že trikrat.


Pollyjina strategija ponovnega poskusa je podrobno razložena

1: Vrsta izjeme


V tej kodi ročaj :handle vsebuje vrsto izjeme, ki jo želimo ponovno preizkusiti. To pomeni, da ko izvedena koda ustvari določeno izjemo, se funkcija ponovnega poskusa izvede. V nasprotnem primeru ponovni poskus ne bo izveden. Ker nekatere izjeme ne zahtevajo ponovnega poskusa.

Seveda lahko tukaj izpolnimo več specifičnih vrst izjem za ponovni poskus.



DivideByZeroException tukaj predstavlja izjemo, ki poskuša deliti z nič.
SqlException označuje izjemo, ki se sproži, ko SQL Server vrne napako ali opozorilo. Na primer, neuspeh povezave z bazo podatkov, napaka pri izvajanju SQL itd.
SmtpException označuje izjemo, ki jo je sprožila poštna storitev. Na primer, pošiljanje ni uspelo, omrežna povezava je odpovedala, podatki o e-poštnem računu pa so bili nenavadni.

Za posebne vrste izjem si oglejte uradno Microsoftovo dokumentacijo:



2: Tip ponovnega poskusa

1) Prva vrsta ponovnega poskusa je neposredno dano število poskusov. Naslednja koda se ponovi le trikrat.

Relevantna dejanja, izvedena ob vsakem ponovnem poskusu, lahko poimenujemo pri ponovnem poskusu. Naslednja koda je naslednja naloga kasneje. Pri ponovnem poskusu se napiše število ponovnih poskusov in razlog za izjemo.



Kodo lahko tudi ponovno poskušamo, dokler ne uspe.



2) Druga vrsta ponovnega poskusa je ponavljanje v intervalih. Naslednja koda pomeni, da morate ponoviti vsakih 2 sekundi, 7 sekund ali 10 sekund. Poskusi znova na 10 sekund. Če izvedba ni uspešna, zaključite ponovni poskus.



Lahko tudi poskusimo znova v intervalih, dokler ponovni poskus ni uspešen. To zahteva izračun funkcije.



Zgornja koda se nanaša na ponovni poskus napajanja indirektne 2. Na primer, če izvedba ne uspe, se prvič ponovi v intervalih po 2 sekundi, drugič v intervalih po 4 sekunde, tretjič pa v intervalih po 8 sekund......... In tako naprej. Dokler usmrtitev ni uspešna.



Epilog


Opomba: Vrste izjem v zgornjem ročaju kode je treba izpolniti glede na dejansko situacijo v vašem dejanskem projektu. Ne vse izjeme zahtevajo ponovni poskus.

Vrsta izjeme je osnovni razred za vse izjeme. Najbolje je, da tega ne zapolnite v ročaj, sicer bo to imelo zelo resne posledice.














Prejšnji:. Neto integracija PayPal IPN vrnjene vrednosti je bila vedno NEVELJAVNA
Naslednji:C# Uporaba ključnih besed yield
Objavljeno na 29. 05. 2019 09:17:54 |
Mehanizem ponovnega poskusa sem sam implementiral v AOP in na koncu ugotovil, da Pollyjeva knjižnica lahko ustreza mojim potrebam, vendar je moja funkcija implementirana, in sklicujem se na knjižnico tretje osebe, ki morda vsebuje nekaj neuporabne kode, ki ne more optimizirati mojega sistema, zato trenutno ni uporabna.

Priložena je moja koda:



Ko bom imel čas, bom pogledal tudi Polly
Objavljeno na 29. 05. 2019 09:22:01 |
Xiao Zhaozha Objavljeno 29. 5. 2019 09:17
Mehanizem ponovnega poskusa sem sam implementiral v AOP in na koncu sem ugotovil, da Pollyjeva knjižnica lahko zadovolji moje potrebe, vendar je moja funkcija že implementirana, in uvod ...

Ni nič narobe, če majhne potrebe, kot je ta, narediš sam
In počakajte na naslednjič, preden poskusite znova
Objavljeno na 29. 05. 2019 09:29:22 |
Winds objavljeno 29. 5. 2019 ob 09:22
Ni nič narobe, če majhne potrebe, kot je ta, narediš sam
In ali naj počakaš na naslednjič, da poskusiš znova?

Ne, izjema mora biti posledica sočasnosti, vstavljanja podatkov, posodobitev in konfliktov pri brisanju, vendar mora obstajati ena, ki bo uspešno izvedena, ....... Izpuščena koda zavije transakcijo, izjema pa se samodejno razveljavi. Ob drugem ponovnem poskusu je konflikt izginil, zato nisem nastavil čakalne dobe.
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com