typestar

Políticas de reintento en C#

Fallo transitorio, te presento a la persistencia declarativa.

using Polly;
using Polly.Retry;

var pipeline = new ResiliencePipelineBuilder()
    .AddRetry(new RetryStrategyOptions
    {
        MaxRetryAttempts = 3,
        Delay = TimeSpan.FromMilliseconds(50),
        BackoffType = DelayBackoffType.Exponential,
    })
    .Build();

var attempts = 0;
pipeline.Execute(() =>
{
    attempts++;
    if (attempts < 3) throw new TimeoutException("flaky");
});
Console.WriteLine($"succeeded on attempt {attempts}");

Cómo funciona

  1. Un ResiliencePipeline se construye una vez y se reutiliza.
  2. MaxRetryAttempts, Delay y el backoff exponencial son opciones.
  3. El callback inestable triunfa al tercer intento, dentro del presupuesto.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
404
Tokens
84
Ritmo de tres estrellas
85 tpm

Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 59 segundos.

Escribe este fragmento

Paso 1 de 2 en Resiliencia con Polly; paso 8 de 16 en El ecosistema abierto.

← Anterior Siguiente →