Esta publicación fue editada por última vez por Kongcida el 29-5-2019 a las 11:16
prefacio En un proyecto, habrá problemas con el funcionamiento del proyecto debido a razones incontrolables. Por ejemplo, un fallo de servidor, un fallo de servicio, una caída de red, etc. Si encontramos algunos errores reprobables, podemos usar Polly —— . .NET Bibliotecas de Manejo de Fallos Elásticos y Transitorios. Dirección oficial del proyecto (El inicio de sesión del hipervínculo es visible.)。 Hoy este artículo documentará la mala estrategia de reintentos de Polly.
Entorno y herramientas
>VS 2017
>Sistema Windows 10
Mensaje de texto
1: Crear una nueva aplicación para consola.
2: Cita a Polly. Disponible para descargar en el paquete NuGet
3: Pegar el código
4: F6 genera. Luego busca el archivo de .exe generado en la carpeta de depuración > haz doble clic para ejecutar.
Puedes ver el mensaje de salida: Lo he intentado repetidamente tres veces.
Cuando F5 está depurando, también puedes ver que este método se ha hecho tres veces.
La estrategia de reintento de Polly se explica en detalle
1: Tipo de excepción
En este código, el :handle contiene el tipo de excepción que se va a intentar de nuevo. Es decir, cuando el código ejecutado produce una excepción específica, se ejecuta la función de reintento. De lo contrario, no se realizará ningún intento de nuevo. Porque algunas excepciones no requieren un nuevo intento.
Por supuesto, podemos rellenar varios tipos específicos de excepciones aquí para volver a intentarlo.
La DivideByZeroException aquí representa una excepción que intenta dividir por cero. SqlException indica una excepción que se activa cuando SqlServer devuelve un error o advertencia. Por ejemplo, fallo en la conexión a la base de datos, error de ejecución SQL, etc. SmtpException indica una excepción planteada por el servicio postal. Por ejemplo, falló el envío, falló la conexión de red y la información de la cuenta de correo electrónico fue anormal.
Para tipos específicos de excepciones, consulte la documentación oficial de Microsoft:
2: Tipo de reintento
1) El primer tipo de intento es un número directo dado de intentos. El siguiente código solo se vuelve a probar 3 veces.
Podemos llamar las acciones relevantes realizadas en cada intento al intentarlo de nuevo. El siguiente código es otro encargo posterior. Al realizar un intento de nuevo, se imprimen el número de intentos y el motivo de la excepción.
También podemos mantener el código intentándolo hasta que tenga éxito.
2) El segundo tipo de reintento es intentarlo a intervalos. El siguiente código significa intentarlo de nuevo cada 2 segundos, 7 segundos o 10 segundos. Vuelve a intentarlo a 10 segundos. Si la ejecución no tiene éxito, termina el intento de nuevo.
También podemos intentarlo de nuevo a intervalos hasta que el intento sea exitoso. Esto requiere el cálculo de una función.
El código anterior se refiere a la retentación de potencia de la indirecta 2. Por ejemplo, si la ejecución falla, la primera vez se intentará de nuevo con intervalos de 2 segundos, la segunda se intentará a intervalos de 4 segundos y la tercera vez se intentará a intervalos de 8 segundos......... Y así sucesivamente. Hasta que la ejecución sea exitosa.
Epílogo
Nota: Los tipos de excepción en el código Handle anterior deben completarse según la situación real en tu proyecto. No todas las excepciones requieren un nuevo intento.
El tipo de excepción es la clase base para todas las excepciones. Es mejor no rellenar esto en el mango, porque de lo contrario tendrá consecuencias muy graves.
|