Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 22130|Atsakyti: 3

[Rėmelis] . .NET atsparumas ir trumpalaikis gedimų valdymas Polly pakartotinių bandymų strategija

[Kopijuoti nuorodą]
Paskelbta 2019-05-28 23:54:53 | | | |
Šį pranešimą paskutinį kartą redagavo Kongcida 2019-5-29 11:16

Įvadas
Projekte dėl nekontroliuojamų priežasčių kils problemų dėl projekto veikimo. Pavyzdžiui, serverio gedimas, paslaugos gedimas, tinklo gedimas ir kt. Susidūrę su kai kuriomis pakartotinai bandomomis klaidomis, galime naudoti Polly —— . .NET elastingos ir trumpalaikės gedimų tvarkymo bibliotekos. Oficialus projekto svetainės adresas (Hipersaito prisijungimas matomas.)。 Šiandien šiame straipsnyje bus dokumentuojama bloga Polly pakartotinio bandymo strategija.


Aplinka ir įrankiai


>VS 2017
>"Windows 10" sistema


SMS žinutė


1: Sukurkite naują konsolės programą.

2: Cituokite Polly. Galima atsisiųsti iš "NuGet" paketo

3: Įklijuokite kodą



4: F6 generuoja. Tada derinimo aplanke raskite sugeneruotą .exe failą – > dukart spustelėkite, kad paleistumėte.



Galite pamatyti išvesties pranešimą: Bandyta pakartotinai tris kartus.

Kai F5 derina, taip pat galite pamatyti, kad šis metodas buvo atliktas tris kartus.


Išsamiai paaiškinta Polly pakartotinio bandymo strategija

1: Išimties tipas


Šiame kode :handle yra išimties tipas, kurį reikia pakartoti. Tai yra, kai įvykdytas kodas sukuria konkrečią išimtį, vykdoma pakartotinio bandymo funkcija. Priešingu atveju pakartotinis bandymas nebus atliekamas. Nes kai kurioms išimtims nereikia bandyti iš naujo.

Žinoma, čia galime užpildyti keletą konkrečių išimčių tipų, kad galėtume bandyti dar kartą.



DivideByZeroException čia reiškia išimtį, kurią bandoma padalyti iš nulio.
SqlException nurodo išimtį, kuri iškeliama, kai SQL Server pateikia klaidą arba įspėjimą. Pavyzdžiui, duomenų bazės ryšio gedimas, SQL vykdymo klaida ir kt.
SmtpException nurodo pašto tarnybos iškeltą išimtį. Pavyzdžiui, siuntimas nepavyko, tinklo ryšys nepavyko, o el. pašto abonemento informacija buvo nenormali.

Konkrečius išimčių tipus rasite oficialioje "Microsoft" dokumentacijoje:



2: Pakartotinio bandymo tipas

1) Pirmasis pakartotinio bandymo tipas yra tiesioginis pakartotinių bandymų skaičius. Šis kodas bandomas tik 3 kartus.

Bandydami iš naujo galime iškviesti atitinkamus veiksmus, atliktus kiekviename pakartotiniame bandyme. Šis kodas yra dar vienas komisinis mokestis vėliau. Atliekant pakartotinį bandymą, spausdinamas pakartotinių bandymų skaičius ir išimties priežastis.



Taip pat galime pakartoti kodą, kol jis pavyks.



2) Antrasis pakartotinio bandymo tipas yra pakartotinis bandymas intervalais. Šis kodas reiškia, kad reikia kartoti kas 2 sekundes, 7 sekundes arba 10 sekundžių. Bandykite dar kartą iki 10 sekundžių. Jei vykdymas nepavyksta, užbaikite bandymą dar kartą.



Taip pat galime bandyti dar kartą, kol pakartotinis bandymas bus sėkmingas. Tam reikia apskaičiuoti funkciją.



Aukščiau pateiktas kodas nurodo netiesioginio 2 galios pakartojimą. Pavyzdžiui, jei vykdymas nepavyksta, pirmą kartą bus bandoma pakartotinai kas 2 sekundes, antrą kartą - kas 4 sekundes, o trečią kartą - kas 8 sekundes......... Ir taip toliau. Kol vykdymas bus sėkmingas.



Epilogas


Pastaba: Aukščiau pateiktame kode Rankena esantys išimčių tipai turėtų būti užpildyti atsižvelgiant į faktinę situaciją jūsų projekte. Ne visoms išimtims reikia bandyti dar kartą.

Išimties tipas yra visų išimčių pagrindinė klasė. Geriausia to neužpildyti rankenoje, kitaip tai turės labai rimtų pasekmių.














Ankstesnis:. Grynoji integracija PayPal IPN grąžinimo vertė visada buvo NETEISINGA
Kitą:C# pajamingumo raktinių žodžių naudojimas
Paskelbta 2019-05-29 09:17:54 |
Aš pats įdiegiau pakartotinio bandymo mechanizmą AOP ir galų gale pastebėjau, kad "Polly" biblioteka gali patenkinti mano poreikius, tačiau mano funkcija buvo įgyvendinta, ir aš remiuosi trečiosios šalies biblioteka, kurioje gali būti nenaudingas kodas, kuris negali optimizuoti mano sistemos, todėl kol kas tai nėra naudinga.

Pridedamas mano kodas:



Kai turėsiu laiko, aš taip pat pažvelgsiu į Polly
Paskelbta 2019-05-29 09:22:01 |
Xiao Zhaozha Publikuota: 2019-5-29 09:17
Aš pats įdiegiau pakartotinio bandymo mechanizmą aop ir galų gale pastebėjau, kad Polly biblioteka gali patenkinti mano poreikius, tačiau mano funkcija buvo įgyvendinta, o įvadas ...

Nėra nieko blogo patiems daryti tokius mažus poreikius
Ir jūs turėtumėte palaukti kito karto, kad bandytumėte dar kartą
Paskelbta 2019-05-29 09:29:22 |
Vėjai Parašyta 2019-5-29 09:22
Nėra nieko blogo patiems daryti tokius mažus poreikius
Ir ar turėtumėte palaukti kito karto, kad bandytumėte dar kartą?

Ne, išimtis turi būti sukelta sutapimo, duomenų įterpimo, naujinimo ir naikinimo konfliktų, bet turi būti vienas, kuris bus sėkmingai vykdomas, aš ....... Praleistas kodas užbaigia operaciją ir išimtis bus automatiškai atšaukta. Antrą kartą bandant, konfliktas dingo, todėl aš nenustatė laukimo laiko.
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com