typestar

Timeouts en C#

Un plazo que el callback no puede negociar.

using Polly;
using Polly.Timeout;

var pipeline = new ResiliencePipelineBuilder()
    .AddTimeout(TimeSpan.FromMilliseconds(50))
    .Build();

try
{
    // un callback educado vigila su token; este no termina nunca
    pipeline.Execute(token =>
    {
        while (!token.IsCancellationRequested) { }
        token.ThrowIfCancellationRequested();
    });
}
catch (TimeoutRejectedException)
{
    Console.WriteLine("gave up at 50ms, as configured");
}

Cómo funciona

  1. AddTimeout recibe el presupuesto directo; el pipeline lo hace cumplir.
  2. La cancelación cooperativa fluye por el argumento del token.
  3. TimeoutRejectedException es la señal de que el plazo se cumplió.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
408
Tokens
70
Ritmo de tres estrellas
85 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →

Timeouts en otros lenguajes