Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 22130|Répondre: 3

[Frame] . Stratégie de réessai de Polly pour la résilience et la gestion des pannes transitoires .NET

[Copié le lien]
Publié sur 28/05/2019 23:54:53 | | | |
Ce post a été modifié pour la dernière fois par Kongcida le 29-05-2019 à 11:16

préface
Dans un projet, il y aura des problèmes de fonctionnement du projet pour des raisons incontrôlables. Par exemple, une panne de serveur, un crash de service, une panne réseau, etc. En rencontrant quelques erreurs réessayables, nous pouvons utiliser Polly —— . .NET Bibliothèques de gestion élastique et transitoire des défauts. Adresse officielle du site web du projet (La connexion hyperlientérée est visible.)。 Aujourd’hui, cet article va documenter la mauvaise stratégie de tentative de Polly.


Environnement et outils


>VS 2017
>Système Windows 10


SMS


1 : Créer une nouvelle application console.

2 : Citation de Polly. Disponible en téléchargement dans le forfait NuGet

3 : Coller le code



4 : F6 génère. Ensuite, trouvez le fichier .exe généré dans le dossier de débogage – > double-cliquez pour l’exécuter.



Vous pouvez voir le message de sortie : Réessayé trois fois.

Lorsque F5 débogue, on peut aussi voir que cette méthode a été utilisée trois fois.


La stratégie de réessai de Polly est expliquée en détail

1 : Type d’exception


Dans ce code, le :handle contient le type d’exception à réessayer. C’est-à-dire que lorsque le code exécuté produit une exception spécifique, la fonction de réessai est exécutée. Sinon, aucune nouvelle tentative ne sera effectuée. Car certaines exceptions ne nécessitent pas de réessayage.

Bien sûr, nous pouvons remplir ici plusieurs types d’exceptions spécifiques pour réessayer.



La DivideByZeroException ici représente une exception qui tente de diviser par zéro.
SqlException indique une exception qui se déclenche lorsque SqlServer renvoie une erreur ou un avertissement. Par exemple, une défaillance de connexion à la base de données, une erreur d’exécution SQL, etc.
SmtpException indique une exception soulevée par le service postal. Par exemple, l’envoi a échoué, la connexion réseau a échoué, et les informations du compte email étaient anormales.

Pour les types d’exceptions spécifiques, veuillez consulter la documentation officielle de Microsoft :



2 : Type de tentative

1) Le premier type de tentative est un nombre direct donné de tentatives. Le code suivant n’est réessayé que 3 fois.

Nous pouvons appeler les actions pertinentes effectuées à chaque tentative lors de la réessayation. Le code suivant est une commande supplémentaire plus tard. Lors d’une réessayage, le nombre de tentatives et la raison de l’exception sont imprimés.



Nous pouvons aussi continuer à réessayer le code jusqu’à ce qu’il réussisse.



2) Le second type de réessai consiste à réessayer à intervalles réguliers. Le code suivant signifie qu’il faut réessayer toutes les 2 secondes, 7 secondes ou 10 secondes. Retenter à 10 secondes. Si l’exécution échoue, terminez la rétentative.



Nous pouvons aussi réessayer à intervalles réguliers jusqu’à ce que la réévaluation réussisse. Cela nécessite le calcul d’une fonction.



Le code ci-dessus fait référence à la tentative de puissance de l’indirect 2. Par exemple, si l’exécution échoue, la première fois sera réessayée à intervalles de 2 secondes, la deuxième fois à intervalles de 4 secondes, et la troisième fois à intervalles de 8 secondes......... Et ainsi de suite. Jusqu’à ce que l’exécution soit réussie.



Épilogue


Note : Les types d’exception dans le code Handle ci-dessus doivent être remplis en fonction de la situation réelle dans votre projet réel. Toutes les exceptions ne nécessitent pas une nouvelle tentative.

Le type d’exception est la classe de base pour toutes les exceptions. Il vaut mieux ne pas remplir cela dans la poignée, sinon cela aura de très graves conséquences.














Précédent:. La valeur de retour PayPal IPN avec intégration net a toujours été INVALIDE
Prochain:C# Utilisation des mots-clés yield
Publié sur 29/05/2019 09:17:54 |
J’ai moi-même implémenté le mécanisme de réessai dans AOP, et finalement, j’ai constaté que la bibliothèque Polly pouvait répondre à mes besoins, mais ma fonction a été implémentée, et je me réfère à une bibliothèque tierce, qui peut contenir du code inutile, ne pouvant pas optimiser mon système, donc elle n’est pas utile pour le moment.

Voici mon code :



Quand j’aurai le temps, je regarderai aussi du côté de Polly
Publié sur 29/05/2019 09:22:01 |
Xiao Zhaozha Publié le 29-05-2019 à 09:17
J’ai moi-même implémenté le mécanisme de réessai dans AOP, et finalement, j’ai constaté que la bibliothèque Polly pouvait répondre à mes besoins, mais ma fonction a été implémentée, et l’introduction ...

Il n’y a rien de mal à faire soi-même de petits besoins comme celui-ci
Et tu devrais attendre la prochaine fois pour réessayer
Publié sur 29/05/2019 09:29:22 |
vents posté le 29-05-2019 à 09:22
Il n’y a rien de mal à faire soi-même de petits besoins comme celui-ci
Et devriez-vous attendre la prochaine fois pour réessayer ?

Non, l’exception doit être causée par des conflits de concurrence, d’insertion de données, de mise à jour et de suppression, mais il doit y en avoir un qui s’exécutera avec succès, je ....... Le code omis encapsule la transaction, et l’exception sera automatiquement annulée. Lors de la deuxième tentative, le conflit a disparu, donc je n’ai pas mis de temps d’attente.
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com