Files
FictionArchive/FictionArchive.Service.TranslationService/Services/Resilience/TranslationResiliencePipeline.cs
gamer147 d5a9529d6f
Some checks failed
CI / build-backend (pull_request) Failing after 1m48s
CI / build-frontend (pull_request) Successful in 1m27s
[FA-misc] Translation engine work
2026-08-25 10:38:27 -04:00

27 lines
873 B
C#

using DeepL;
using Polly;
using Polly.Retry;
namespace FictionArchive.Service.TranslationService.Services.Resilience;
public static class TranslationResiliencePipeline
{
public static ResiliencePipeline Build()
{
return new ResiliencePipelineBuilder()
.AddRetry(new RetryStrategyOptions
{
ShouldHandle = new PredicateBuilder()
.Handle<HttpRequestException>()
.Handle<TaskCanceledException>(ex => ex.InnerException is TimeoutException)
.Handle<ConnectionException>()
.Handle<TooManyRequestsException>(),
MaxRetryAttempts = 3,
BackoffType = DelayBackoffType.Exponential,
Delay = TimeSpan.FromMilliseconds(500),
UseJitter = true
})
.Build();
}
}