See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 22130|Vastuse: 3

[Kaader] . .NET vastupidavus ja ajutise rikke käsitlemine Polly uuesti proovimise strateegia

[Kopeeri link]
Postitatud 28.05.2019 23:54:53 | | | |
Seda postitust toimetas viimati Kongcida 29.05.2019 kell 11:16

eessõna
Projektis esineb projekti toimimisega probleeme kontrollimatutel põhjustel. Näiteks serveri rike, teenuse krahhh, võrgu katkestus jne. Kui tekib mõningaid uuesti proovitavaid vigu, saame kasutada Polly —— . .NET elastsed ja ajutised rikete käsitlemise teegid. Projekti ametlik veebilehe aadress (Hüperlingi sisselogimine on nähtav.)。 Täna dokumenteerib see artikkel Polly halva korduskatse strateegia.


Keskkond ja tööriistad


>VS 2017
>Windows 10 süsteem


Tekst


1: Loo uus konsoolirakendus.

2: Tsitaat Pollyst. Allalaadimiseks saadaval NuGet paketis

3: Kleebi kood



4: F6 genereerib. Seejärel leia genereeritud .exe fail silumiskaustast – > topeltklõpsa, et käivitada.



Näed väljundteadet: Retried kolm korda.

Kui F5 silub, on näha, et seda meetodit on tehtud kolm korda.


Polly korduskatse strateegiat selgitatakse üksikasjalikult

1: Eranditüüp


Selles koodis sisaldab :handle uuesti proovitavat eranditüüpi. See tähendab, et kui käivitatud kood tekitab konkreetse erandi, käivitatakse uuesti proovimise funktsioon. Vastasel juhul uuesti katsetamist ei tehta. Sest mõned erandid ei nõua uuesti proovimist.

Muidugi saame siin täita mitmeid spetsiifilisi eranditüüpe, et uuesti proovida.



DivideByZeroException siin esindab erandit, mis püüab jagada nulliga.
SqlException näitab erandit, mis tekib, kui Sql Server tagastab vea või hoiatuse. Näiteks andmebaasi ühenduse ebaõnnestumine, SQL-i käivitamise viga jne.
SmtpException tähistab erandit, mille postiteenus on esitanud. Näiteks saatmine ebaõnnestus, võrguühendus ebaõnnestus ja e-posti konto info oli ebanormaalne.

Konkreetsete eranditüüpide kohta vaadake palun Microsofti ametlikku dokumentatsiooni:



2: Korduskatse tüüp

1) Esimene korduskatse tüüp on otsene arv kordusi. Järgmist koodi proovitakse uuesti vaid 3 korda.

Saame kutsuda iga korduskatse puhul tehtud asjakohaseid tegevusi uuesti proovides. Järgmine kood on veel üks tellimus hiljem. Korduskatse tegemisel trükitakse kordamiste arv ja erandi põhjus.



Võime ka koodi uuesti proovida, kuni see õnnestub.



2) Teine korduskatse tüüp on kordamine intervallidega. Järgmine kood tähendab, et tuleb uuesti proovida iga 2, 7 või 10 sekundi järel. Proovi uuesti 10 sekundini. Kui täideviimine ei õnnestu, lõpeta korduskatse.



Võime ka vahepeal uuesti proovida, kuni korduskatse õnnestub. See nõuab funktsiooni arvutamist.



Ülaltoodud kood viitab kaudse 2 võimsuse uuesti proovimisele. Näiteks, kui täitmine ebaõnnestub, proovitakse esimest korda uuesti 2-sekundiliste vahedega, teist korda 4-sekundiliste vahedega ja kolmandat korda 8-sekundiliste vahedega......... Ja nii edasi. Kuni täideviimine on edukas.



Epiloog


Märkus: Ülaltoodud koodi Handle eranditüübid tuleks täita vastavalt tegelikule olukorrale sinu tegelikus projektis. Kõik erandid ei nõua uuesti proovimist.

Eranditüüp on kõigi erandite baasklass. Parim on seda mitte täita käepidemes, muidu on sellel väga tõsised tagajärjed.














Eelmine:. Netointegratsioon PayPal IPN tagastusväärtus on alati olnud KEHTETU
Järgmine:C# Tulu märksõnade kasutamine
Postitatud 29.05.2019 09:17:54 |
Ma rakendasin uuesti proovimise mehhanismi ise AOP-is ja lõpuks avastasin, et Polly teek suudab minu vajadusi rahuldada, kuid minu funktsioon on juba rakendatud, ning ma viitan kolmanda osapoole raamatukogule, mis võib sisaldada kasutut koodi, mis ei suuda minu süsteemi optimeerida, seega pole see praegu kasulik.

Lisatud on minu kood:



Kui mul aega on, uurin ka Polly kohta
Postitatud 29.05.2019 09:22:01 |
Xiao Zhaozha Postitatud 2019-5-29 09:17
Rakendasin ise uuesti proovimise mehhanismi AOP-is ja lõpuks avastasin, et Polly raamatukogu suudab minu vajadusi rahuldada, kuid minu funktsioon on teostatud ja sissejuhatus ...

Pole midagi halba selles, kui teed ise selliseid väikeseid vajadusi
Ja sa peaksid ootama järgmist korda, et uuesti proovida
Postitatud 29.05.2019 09:29:22 |
Winds postitatud 2019-5-29 09:22
Pole midagi halba selles, kui teed ise selliseid väikeseid vajadusi
Ja kas peaksid ootama järgmise korrani, et uuesti proovida?

Ei, erand peab olema põhjustatud samaaegsuse, andmete sisestamise, uuendamise ja kustutamise konfliktidest, kuid peab olema üks, mis edukalt käivitatakse, ....... Välja jäetud kood mähib tehingu ja erand keritakse automaatselt tagasi. Teisel korduskatsel on konflikt kadunud, nii et ma ei pannud ootamisaega.
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com