Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 22130|Odpověď: 3

[Rám] . .NET odolnost a řešení přechodných selhání Pollyho strategie opakování pokusů

[Kopírovat odkaz]
Zveřejněno 28.05.2019 23:54:53 | | | |
Tento příspěvek naposledy upravil Kongcida dne 29. 5. 2019 v 11:16

předmluva
V projektu se vyskytnou problémy s provozem projektu kvůli nekontrolovatelným důvodům. Například selhání serveru, pád služby, výpadek sítě atd. Pokud narazíme na některé chyby pro opakované pokusy, můžeme použít Polly —— . .NET Elastické a přechodné knihovny pro zpracování chyb. Oficiální webová adresa projektu (Přihlášení k hypertextovému odkazu je viditelné.)。 Dnes tento článek zdokumentuje Pollyinu špatnou strategii opakovaného pokusu.


Prostředí a nástroje


>VS 2017
>Systém Windows 10


Text


1: Vytvořit novou konzolovou aplikaci.

2: Cituj Polly. Dostupné ke stažení v balíčku NuGet

3: Vložte kód



4: F6 generuje. Pak najděte vygenerovaný .exe soubor ve složce pro ladění – > dvojitým kliknutím spusťte.



Vidíte výstupní zprávu: Zkoušet to třikrát.

Když F5 ladí, můžete také vidět, že tato metoda byla provedena třikrát.


Pollyina strategie opakovaného pokusu je podrobně vysvětlena

1: Typ výjimky


V tomto kódu obsahuje :handle typ výjimky, který má být znovu vyzkoušen. To znamená, že když vykonáný kód vytvoří specifickou výjimku, funkce opakovaného pokusu se vykoná. Jinak se žádné opakování neprovede. Protože některé výjimky nevyžadují opakování.

Samozřejmě zde můžeme vyplnit několik konkrétních typů výjimek pro opětovné pokusy.



DivideByZeroException zde představuje výjimku, která se snaží dělit nulou.
SqlException označuje výjimku, která je vyvolána, když SQL Server vrátí chybu nebo varování. Například selhání připojení k databázi, chyba při provádění SQL atd.
SmtpException označuje výjimku vytvořenou poštovní službou. Například odeslání selhalo, selhalo síťové připojení a informace o e-mailovém účtu byly abnormální.

Pro konkrétní typy výjimek se prosím podívejte na oficiální dokumentaci Microsoftu:



2: Typ opakování

1) Prvním typem opakování je přímý počet opakovaných pokusů. Následující kód se zkouší jen třikrát.

Můžeme při opakovaném pokusu označit relevantní akce provedené při každém opakovaném pokusu. Následující kód je další zakázka později. Při provádění opakovaného pokusu se vypíše počet pokusů a důvod výjimky.



Můžeme také nechat kód znovu zkoušet, dokud neuspěje.



2) Druhým typem opakovaného pokusu je opakované zkoušení v intervalech. Následující kód znamená opakovat každé 2 sekundy, 7 sekund nebo 10 sekund. Zkus to znovu na 10 sekund. Pokud provedení není úspěšné, ukončete opakovaný pokus.



Můžeme také zkoušet znovu v intervalech, dokud nebude opakování úspěšné. To vyžaduje výpočet funkce.



Výše uvedený kód se týká pokusu o napájení nepřímé části 2. Například pokud provedení selže, poprvé se pokusí znovu v intervalech po 2 sekundách, podruhé v intervalech po 4 sekundách a třetí pokus v intervalech po 8 sekundách......... A tak dále. Dokud nebude poprava úspěšná.



Epilog


Poznámka: Typy výjimek v výše uvedeném kódu Handle by měly být vyplněny podle aktuální situace ve vašem skutečném projektu. Ne všechny výjimky vyžadují opakování.

Typ výjimky je základní třída pro všechny výjimky. Nejlepší je to do rukojeti nevyplňovat, jinak to bude mít velmi vážné následky.














Předchozí:. Síťová integrace PayPal IPN vrácení hodnoty byla vždy NEPLATNÁ
Další:C# Použití klíčových slov yield
Zveřejněno 29.05.2019 9:17:54 |
Mechanismus opakování jsem implementoval sám v AOP a nakonec jsem zjistil, že knihovna Polly může splnit mé potřeby, ale moje funkce byla implementována a odkazuji na knihovnu třetí strany, která může obsahovat nějaký zbytečný kód, který nemůže optimalizovat můj systém, takže zatím není užitečná.

Přikládám svůj kód:



Až budu mít čas, podívám se i na Polly
Zveřejněno 29.05.2019 9:22:01 |
Xiao Zhaozha Zveřejněno 29. 5. 2019 09:17
Mechanismus opakovaného pokusu jsem implementoval sám v AOP a nakonec jsem zjistil, že knihovna Polly by mohla splnit mé potřeby, ale moje funkce byla implementována a úvod ...

Není nic špatného na tom, když si takové malé potřeby uděláte sami
A měli byste počkat na další pokus, než to zkusíte znovu
Zveřejněno 29.05.2019 9:29:22 |
Winds zveřejněno 29. 5. 2019 09:22
Není nic špatného na tom, když si takové malé potřeby uděláte sami
A měli byste počkat na příště, než to zkusíte znovu?

Ne, výjimka musí být způsobena konflikty souběžnosti, vkládání dat, aktualizace a mazání, ale musí existovat jedna, která bude úspěšně vykonána, ....... Vynechaný kód transakci obalí a výjimka bude automaticky vrácena zpět. Při druhém opakování konflikt zmizel, takže jsem nenastavil čekací dobu.
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com