gpt4 book ai didi

c# - 我可以将重试和后备 Polly 恢复策略结合起来吗?

转载 作者:行者123 更新时间:2023-12-01 20:05:59 26 4
gpt4 key购买 nike

我想执行某个操作,如果失败3次则返回null。 Polly 中类似的东西将是完美的:

var results = await Policy<IList<Value>>
.Handle<TaskCanceledException>()
.RetryAsync<IList<Value>>(3)
.FallbackAsync(null as IList<Value>)
.ExecuteAsync(() => myRestfulCall());

这是不可能的,因为 RetryAsync 返回 AsyncRetryPolicy 并且没有在此类型上定义 Fallback 扩展方法。是否有不需要 try/catch block 的 Polly 语法来执行此操作?

最佳答案

Polly 允许您通过 PolicyWrap 灵活组合任何策略:extensive documentation here .

您引用的示例可以实现如下:

var fallback = Policy<IList<Value>>
.Handle<TaskCanceledException>()
.FallbackAsync(null as IList<Value>);

var retry = Policy<IList<Value>>
.Handle<TaskCanceledException>()
.RetryAsync<IList<Value>>(3);

var results = await fallback.WrapAsync(retry)
.ExecuteAsync(() => myRestfulCall());

关于c# - 我可以将重试和后备 Polly 恢复策略结合起来吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55299641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com