gpt4 book ai didi

c# - C# 中带有超时函数的通用异步重试

转载 作者:太空狗 更新时间:2023-10-29 20:51:12 26 4
gpt4 key购买 nike

我有数百个对各种外部 API 的调用,我想将它们包装在一个能够进行重试和处理超时的通用异步函数中。

基本上,我想我需要实现类似这个函数调用的东西:

await Retry(()=>someFunctionAsync(doWorkParams, new CancellationToken()), retryCount, timeout);

如何定义这样的重试函数?另外,我如何从 Sync 代码中调用此函数,因为我的大量调用都包含在同步方法中?

最佳答案

不要重新发明轮子。 Just use Polly它完全支持您正在谈论的场景以及各种重试场景和断路器等高级模式。

这是他们文档中的异步示例:

await Policy
.Handle<SqlException>(ex => ex.Number == 1205)
.Or<ArgumentException>(ex => ex.ParamName == "example")
.RetryAsync()
.ExecuteAsync(() => DoSomethingAsync());

关于c# - C# 中带有超时函数的通用异步重试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43148175/

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