问题标签 [polly]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
circuit-breaker - Polly 断路器没有被调用
我第一次尝试实施断路器,但它不起作用。后备政策有效,但我似乎无法达到断路器。我已经在不同的版本中尝试过这个,包括断路器的重试策略,但这似乎并不重要。我确定这是我错过的基本内容。
这是用于测试目的的代码的简化版本:
c# - 从字符串 C# 中检索对象
我有下面的映射器 json 文件,它告诉我给定的异常,我想使用哪个错误处理策略。
然后使用下面的代码,我试图获取异常类型并应用可以调用操作的策略。但是在这里我被卡住了,如何从字符串名称中获取异常类型。
polly - Polly 是否支持 net 4.6.1?
Polly 是否支持 .net 4.6.1?我可以在我自己的 4.6.1 c# 项目中安全地使用它吗?
根据现在的文档,它支持 4.5。但是我想在我自己的 4.6.1 运行时使用它,可以吗?
javascript - .net Polly 库是否有任何 JavaScript (Angular) 等效项
我最近发现了 .net 库Polly。从 GitHub 页面..
Polly 是一个 .NET 弹性和瞬态故障处理库,允许开发人员表达重试、断路器、超时、隔板隔离和回退等策略。
它看起来非常强大且非常易于使用,但是我对我的 Angular 应用程序(Polly 仅适用于 .net)也有同样的追求。也许我应该看看 Polly 团队是否可以考虑 JS 端口。
我知道 Rxjs 有重试、超时等(我目前正在使用),但想知道是否有一些包可能类似于使用 Polly 策略的方式包装它,并且还包括缓存等功能?
我已经进行了相当多的搜索,但还没有找到任何东西。
提前致谢!
c# - 如何为多个 WCF 客户端创建 Polly 的策略
我需要集成一个第 3 方服务。它有 3 个端点用于 3 个呼叫。就是这样,每个 API 调用都有自己的端点和自己的 wsdl。因此,不同调用的 POCO 之间没有任何联系(如继承)。但是这些调用的结果非常相似。特别是每个结果都有 'Errors' 属性,其中包含管道分隔字符串中的错误。一些错误在调用之间共享(具有相同的名称)并且必须以类似的方式处理。
我的目标是在引发异常或错误中出现名为“EXCEPTION”的错误时重试调用。我正在尝试使用 Polly 来实现这个目标。我现在看到的唯一方法是为每个调用创建单独的策略。有没有办法为所有呼叫创建一个单一的策略?
示例代码如下(在实际项目中 *Result 类和 *Service 接口由 VisualStudio 在导入 wsdl 时自动生成):
c# - Polly retry inside 循环的问题
我正在使用 Polly 重试策略在抛出异常时重试。这里我试图在循环中使用该重试策略。因此,在执行 foreach 循环时,如果它抛出任何异常,则 Polly 重试。这部分工作正常。但我想继续重试后循环内的下一次迭代。但在2次重试后抛出最终异常并返回调用方法。
在第一次迭代中,它给出了错误,在 2 次重试后,我想返回循环并继续每个循环内部的其他项目。有什么方法可以用 Polly 实现这一点。请建议。
.net - Polly 的后备中的动态委托
我在 PolicyRegistry 中有以下策略可以在全球范围内重用:
我有以下要实现的代码fallbackPolicy
:
我希望它看起来像这样:
据我了解,fallbackPolicy.Execute
需要执行 Action/Func ,要么成功,在这种情况下fallbackPolicy
没有命中,要么失败,在这种情况下fallbackPolicy
,使用一些预定义的fallbackAction
.
我想做的是在执行策略时传入两个处理程序(onFail(transaction)
处理事务和onSuccess(transaction)
提交事务)。有没有更简单的方法来代替包装或使用 Polly 的上下文?
c# - 根据重试次数调整超时时间
我想用 Polly 来做以下事情: 尝试一个超时时间很短的请求。如果失败,请使用更长的超时时间重试。
我看到Retry
可以这样访问retryCount
:
我看到Timeout
可以指定一个int
or TimeSpan
,如下所示:
我什至看到您可以将函数传递给超时,如下所示:
该Func
选项似乎最有希望,但它可以在哪里访问重试计数?将状态保留在策略之外是很诱人的,但是如果我想以线程安全的方式共享策略,那是很危险的。
有什么建议吗?