Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 22130|Válasz: 3

[Képkockázás] . .NET ellenállóság és átmeneti hibakezelés Polly újrapróbálási stratégiája

[Linket másol]
Közzétéve 2019. 05. 28. 23:54:53 | | | |
Ezt a bejegyzést utoljára Kongcida szerkesztette: 2019-05-29, 11:16

előszó
Egy projektben problémák adódhatnak a projekt működésével ellenőrizhetetlen okok miatt. Például szerverhiba, szolgáltatás összeomlása, hálózati kimaradás stb. Ha újra próbálható hibákkal találkozunk, használhatjuk a Polly —— . .NET rugalmas és átmeneti hibakezelő könyvtárak. A projekt hivatalos weboldalának címe (A hiperlink bejelentkezés látható.)。 Ma ez a cikk dokumentálja Polly rossz újrapróbálkozási stratégiáját.


Környezet és eszközök


>VS 2017
>Windows 10 rendszer


SMS


1: Hozz létre egy új konzolos alkalmazást.

2: Idézd Pollyt. Letölthető a NuGet csomagban

3: Illesztsd be a kódot



4: F6 generál. Ezután keresd meg a generált .exe fájlt a hibakeresés mappában – > dupla kattintással a futtatáshoz.



Láthatod a kimeneti üzenetet: Háromszor próbálkozva.

Amikor az F5 hibakeresést végez, azt is láthatod, hogy ezt a módszert háromszor is megcsinálták.


Polly újrapróbálkozási stratégiáját részletesen elmagyarázzák

1: Kivételtípus


Ebben a kódban a :handle tartalmazza a visszapróbálandó kivételtípust. Vagyis amikor a végrehajtott kód egy adott kivételt generál, a retry függvény fut el. Ellenkező esetben nem végezik újra a próbálkozást. Mert néhány kivétel nem igényel újrapróbálást.

Természetesen itt több konkrét kivételtípust is kitölthetünk, hogy újra próbálkozhassunk.



A DivideByZeroException itt egy olyan kivételt képvisel, amely megpróbálja elosztani nullával.
A SqlException olyan kivételt jelöl, amely akkor jelenik meg, amikor a SQL Server hibát vagy figyelmeztetést ad vissza. Például adatbázis-kapcsolati hiba, SQL végrehajtási hiba stb.
Az SmtpException egy olyan kivételt jelöl, amelyet a postai szolgáltatás felhozott. Például a küldés meghibásodott, a hálózati kapcsolat meghibásodott, és az e-mail fiók adatai rendellenesek voltak.

A konkrét kivételtípusokért kérjük, tekintse meg a Microsoft hivatalos dokumentációját:



2: Újrapróbálkozás típusa

1) Az első típusú újrapróbálkozás közvetlenül adott számú próbálkozás. A következő kódot csak háromszor próbálják újra.

Újra próbálkozáskor megnevezhetjük a releváns műveleteket, amelyeket minden újrapróbálkozásnál végrehajtunk. A következő kód egy újabb megbízás következik. Újrapróbálkozáskor kinyomtatják az újrapróbálkozások számát és a kivétel okát.



A kódot újra próbálhatjuk újra, amíg sikerül nem.



2) A második típusú újrapróbálkozás időközönként. A következő kód azt jelenti, hogy 2, 7 vagy 10 másodpercenként újra próbálkozni. Próbáld újra 10 másodpercre. Ha a végrehajtás nem sikeres, fejezd be az újrapróbálkozást.



Időközönként újra próbálkozhatunk, amíg az újrapróbálás sikeres nem lesz. Ez függvény kiszámítását igényli.



A fenti kód a direkt 2 hatványújrapróbálására utal. Például, ha a végrehajtás sikertelen, az első alkalommal 2 másodperces időközönként, a másodikat 4 másodperces időközönként, a harmadszor pedig 8 másodperces időközönként próbálják újra......... És így tovább. Amíg a végrehajtás sikeres nem lesz.



Epilógus


Megjegyzés: A fenti Handle kódban szereplő kivételtípusokat a projekt tényleges helyzete szerint kell kitölteni. Nem minden kivételhez kell újra próbálkozni.

A kivételtípus az alaposztály minden kivételre. A legjobb, ha nem töltöd be a fogantyúba, különben nagyon súlyos következményekkel jár.














Előző:. Net-integráció PayPal IPN visszaküldési értéke mindig is ÉRVÉNYTELEN volt
Következő:C# Hozamkulcsszavak használata
Közzétéve 2019. 05. 29. 9:17:54 |
Én is megvalósítottam az újrapróbálkozási mechanizmust az AOP-ban, és végül rájöttem, hogy a Polly könyvtár képes kielégíteni az igényeimet, de a funkcióm már megvalósult, és egy harmadik féltől származó könyvtárra utalok, amelyben lehet, hogy van haszontalan kód, ami nem tudja optimalizálni a rendszeremet, így egyelőre nem hasznos.

Csatolva van a kódom:



Ha lesz időm, utánanézek Pollynak is
Közzétéve 2019. 05. 29. 9:22:01 |
Xiao Zhaozha Közzétéve: 2019-05-29 09:17
Magam valósítottam meg az újrapróbálási mechanizmust az aop-ban, és végül rájöttem, hogy a Polly könyvtár képes kielégíteni az igényeimet, de a funkcióm megvalósult, és a bevezetés ...

Nincs semmi baj azzal, ha magad végzi el az ilyen apró feladatokat
És várj a következő alkalomra, hogy újra próbálkozz
Közzétéve 2019. 05. 29. 9:29:22 |
Winds közzétéve: 2019-05-29, 09:22
Nincs semmi baj azzal, ha magad végzi el az ilyen apró feladatokat
És várj a következő alkalomra, hogy újra próbálkozzunk?

Nem, a kivételt egyidejű áthelyezés, adatbehelyezés, frissítés és törlés ütközései okozhatják, de van egy, amely sikeresen végrehajtható, ....... A kihagyott kód becsomagolja a tranzakciót, és a kivétel automatikusan visszavonul. A második próbálkozásnál a konfliktus eltűnt, így nem állítottam be várakozási időt.
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com