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.
|