|
|
Zverejnené 28. 5. 2019 23:54:53
|
|
|
|

Tento príspevok naposledy upravil Kongcida 29.5.2019 o 11:16
predhovor V projekte sa vyskytnú problémy s prevádzkou projektu kvôli nekontrolovateľným dôvodom. Napríklad zlyhanie servera, pád služby, výpadok siete a podobne. Ak narazíme na chyby, ktoré sa dajú opakovať, môžeme použiť Polly —— . .NET elastické a prechodné knižnice na spracovanie chýb. Oficiálna adresa webovej stránky projektu (Prihlásenie na hypertextový odkaz je viditeľné.)。 Dnes tento článok zdokumentuje Pollyinu zlú stratégiu opakovaného pokusu.
Prostredie a nástroje
>VS 2017
>Systém Windows 10
Text
1: Vytvoriť novú konzolovú aplikáciu.
2: Citujem Polly. Dostupné na stiahnutie v balíku NuGet
3: Vložte kód
4: F6 generuje. Potom nájdite vygenerovaný .exe súbor v debug priečinku – > dvojitým kliknutím spustíte.
Môžete vidieť výstupnú správu: Skúšané trikrát.
Keď F5 ladí, môžete tiež vidieť, že táto metóda bola použitá trikrát.
Pollyina stratégia opakovania je podrobne vysvetlená
1: Typ výnimky
V tomto kóde obsahuje :handle typ výnimky, ktorý sa má skúšať znova. To znamená, že keď vykonaný kód vytvorí konkrétnu výnimku, vykoná sa funkcia opakovaného pokusu. Inak sa žiadne opakovanie nevykoná. Pretože niektoré výnimky nevyžadujú opakovanie.
Samozrejme, môžeme tu vyplniť niekoľko špecifických typov výnimiek na opätovné skúšanie.
DivideByZeroException tu predstavuje výnimku, ktorá sa snaží deliť nulou. SqlException označuje výnimku, ktorá sa vyvolá, keď SQL Server vráti chybu alebo varovanie. Napríklad zlyhanie pripojenia k databáze, chyba pri vykonávaní SQL a podobne. SmtpException označuje výnimku vytvorenú poštovou službou. Napríklad odosielanie zlyhalo, sieťové pripojenie zlyhalo a informácie o e-mailovom účte boli abnormálne.
Pre konkrétne typy výnimiek si pozrite oficiálnu dokumentáciu Microsoftu:
2: Typ opätovného pokusu
1) Prvým typom opakovania je priamy počet opakovaní. Nasledujúci kód sa skúša len trikrát.
Relevantné akcie vykonané pri každom opakovanom pokuse môžeme vyvolať pri opätovnom pokuse. Nasledujúci kód je ďalšia objednávka neskôr. Pri opakovanom pokuse sa vytlačí počet pokusov a dôvod výnimky.
Môžeme tiež nechať kód opakovane skúšať, kým neuspeje.
2) Druhým typom opakovaného pokusu je opakovanie v intervaloch. Nasledujúci kód znamená opakovať každé 2 sekundy, 7 sekúnd alebo 10 sekúnd. Skús znova na 10 sekúnd. Ak vykonanie nie je úspešné, ukončite opakovaný pokus.
Môžeme to tiež skúšať znova v intervaloch, kým nebude pokus úspešný. To si vyžaduje výpočet funkcie.
Vyššie uvedený kód sa týka opätovného pokusu o napájanie nepriameho čísla 2. Napríklad, ak vykonanie zlyhá, prvý pokus sa opakuje v intervaloch 2 sekúnd, druhý v intervaloch po 4 sekundách a tretíkrát v intervaloch po 8 sekúnd......... A tak ďalej. Až kým poprava nebude úspešná.
Epilóg
Poznámka: Typy výnimiek v vyššie uvedenom kóde Handle by mali byť vyplnené podľa skutočnej situácie vo vašom projekte. Nie všetky výnimky vyžadujú opakovanie.
Typ výnimky je základná trieda pre všetky výnimky. Najlepšie je to do kľučky nevyplňovať, inak to bude mať veľmi vážne následky.
|
Predchádzajúci:. Sieťová integrácia PayPal IPN vrátená hodnota bola vždy NEPLATNÁBudúci:C# Použitie kľúčových slov yield
|