How to apply a Timeout strategy using Polly in C#?

Asked -50 seconds ago Updated 3 hours ago 17 views

1

Long-running requests can consume system resources and cause bottleneck issues. Applying a Timeout strategy ensures that calls return control promptly if a dependency takes too long to respond.

Timeout Implementation in Polly v8

Polly supports both optimistic and pessimistic timeout strategies. Optimistic timeout relies on CancellationToken cancellation support.

Code Example

var pipeline = new ResiliencePipelineBuilder()
    .AddTimeout(new TimeoutStrategyOptions
    {
        Timeout = TimeSpan.FromSeconds(3),
        OnTimeout = args =>
        {
            Console.WriteLine($"Operation timed out after {args.Timeout.TotalSeconds}s");
            return ValueTask.CompletedTask;
        }
    })
    .Build();

try
{
    await pipeline.ExecuteAsync(async cancellationToken =>
    {
        await LongRunningTaskAsync(cancellationToken);
    });
}
catch (TimeoutRejectedException)
{
    // Handle timeout scenario
}

0 Answers


Write Your Answer