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
AddTimeoutrecibe el presupuesto directo; el pipeline lo hace cumplir.- La cancelación cooperativa fluye por el argumento del token.
TimeoutRejectedExceptiones la señal de que el plazo se cumplió.
Palabras clave y builtins usados aquí
catchnewtryusingvarwhile
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.
Paso 2 de 2 en Resiliencia con Polly; paso 9 de 16 en El ecosistema abierto.