|
|
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é INVALIDEProchain:C# Utilisation des mots-clés yield
|