问题标签 [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.

0 投票
2 回答
1406 浏览

c# - 用于处理错误 http 响应的 C# Polly

我试图在构造函数中实现用于处理 HTTP 错误状态的 Polly,但我收到一条错误消息:非泛型方法不能与类型参数一起使用。不过,我使用了他们网站上的代码。这里是:

错误出现在第二行的“OrResult”处。我还尝试将它与 ApiResponse 一起使用,这是我的通用类,但效果不佳。我究竟做错了什么 ?谢谢你。

0 投票
2 回答
2102 浏览

c# - Polly WaitAndRetry 与最终异常什么都不做

我执行对不太稳定的外部服务的调用,因此引发 WebExceptions。
我想重试几次,在最后一次尝试之后,我想抛出收到的最后一个错误。

这是我对Polly (v6.1.1)的尝试:

调用者,旧版 VB.Net:

当我运行上面描述的代码时,theResult保持为空,并且似乎没有调用该服务。如果我只使用 WaitAndRetryPolicy 而不使用Fallback函数,则会调用服务并且重试机制按预期工作(当然不会抛出异常)。

如何实现我的目标,而无需在调用者代码中检查PolicyResult.FinalException

0 投票
1 回答
710 浏览

c# - 在 .NET Core 应用程序中运行 Polly 策略时,它在捕获异常后挂起

我正在尝试测试我在基本 .NET Core 应用程序中的一些 Polly“重试”代码。我必须实现一个异步方法(通过继承的接口):

注意上面的方法没有用async关键字修饰吗?我是故意这样做的。

当我尝试连接到第 3 方服务(RabbitMQ 服务器)时,我在其中设置了该服务的主机名,不正确/错别字,我的同步代码尝试并失败并引发异常。伟大的!但在那之后,代码只是挂起?我认为代码应该继续重试。

所以我想我可以只返回一个Task.CompletedTask;,因为在这个方法中没有调用任何代码async/await。但是当抛出异常时,它会被处理(log.Warning(..)如果那里有断点,则会被调用/中断),然后挂起。

我如何调试这里发生的事情?

编辑

根据@jeremy-thompson 下面的回复,我想我可以尝试将代码更改为:

那么这个:

  • 尝试连接到坏服务器
  • 失败并抛出异常
  • 现在退出 ExecuteAndCapture() (不再返回 14 次......)
  • 返回Task.FromException...

这有点接近,但仍然不会再重试 14 次。

0 投票
2 回答
6347 浏览

c# - 记录 Polly 等待和重试策略 ASP.NET CORE 2.1

我需要在 APS.NET CORE 2.1+ 中记录通过 Polly 定义的重试策略。

我的代码在下面显示 Polly 重试 polly 并使用 HttpClient。

我想知道是否有比stevejgordon更好的方法。

0 投票
1 回答
433 浏览

httpclient - HttpClient 和 Polly 延迟 14 秒

我正在使用 httpClient 执行 POST 请求。我正在使用 Polly 进行重试。发生的情况是第一次尝试需要 14 秒,即使我指定了 2 秒的重试时间。第一次尝试在 14 秒后失败,然后有 2 秒的差距,直到第二次尝试。我希望它每 2 秒尝试一次并超时并重试任何错误。这是正确的做法吗?

0 投票
1 回答
421 浏览

c# - 在 Polly CircuitBreaker 中设置 durationOfBreak

我正在将 Polly Circuit Breaker 用于 API,如果服务因维护而停机,则会引发用户定义的异常。Exception 将包含一个值,服务将关闭多长时间。

是否可以在处理第一个用户异常后配置/更新断路器策略?

例如

0 投票
2 回答
993 浏览

c# - 连接波利政策

当我知道代码针对 429 问题遇到 WebException 的事实时,有人可以建议为什么我的 Policy 句柄没有处理我的 WebException 错误吗?我已经研究了一段时间,需要一些帮助。

这是我的 Polly 政策:

我这样使用它:

当我运行代码时,我可以看到它触发了 WebException,但没有调用 Policy。请帮忙。

0 投票
1 回答
333 浏览

c# - Polly Bulkhead 策略本身是否会调用线程?

我定义了以下Polly政策:

我像这样执行策略:

我希望每个调用Notify()都在一个新线程上运行。所以,我的问题是:我是否必须显式调用Task.Run(() =>一个新线程,还是由 polly 自动在一个新线程上运行?

0 投票
1 回答
3537 浏览

c# - Polly 断路器回退不起作用

我有以下政策:

我像这样执行策略:

问题是当在开路上执行操作时,我没有在 CircuitBreaker 回调中受到打击。

我希望通过策略放置 API 调用,要处理的异常类型为HttpRequestException. 政策定义有问题吗?为什么不调用断路器回退?

0 投票
1 回答
4853 浏览

c# - 如何获取通过 Polly 重试策略执行的委托中的重试计数?

我正在实施 Polly 以在我的 C# Web 应用程序中重试请求。我的示例代码包含在这篇文章中。代码按预期工作,但传递给 CreateFile() 的最后一个参数(当前硬编码为 0)需要是 retryAttempt 的值。如何在执行操作中获取 retryAttempt 的值?