问题标签 [retrypolicy]
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.
go - 如何模拟 HTTP 调用的第二次尝试?
作为我的第一个项目的一部分,我正在创建一个小型库来向任何用户发送 SMS。如果第一次没有收到肯定状态,我已经添加了等待和重试的逻辑。这是对短信发送服务的基本 HTTP 调用。我的算法看起来像这样(评论将解释代码的流程):
现在我想使用任何可用的 HTTP 模拟框架来测试这个逻辑。我得到的最好的是https://github.com/jarcoal/httpmock
但是这个不提供分别模拟第一个和第二个 URL 响应的功能。因此,我无法在第二次或第三次重试中测试成功。我可以先测试成功,也可以完全失败。
是否有适合我测试此特定功能的需求的软件包?如果不是,我如何使用当前工具实现这一目标?
spring - 春季批处理:如果未在特定时间完成,则重试作业
我正在开发一个使用过的 Spring 批处理应用RetryTemplate
程序SimpleRetryPolicy
。
在此应用程序中,ItemProcessor
通常需要 30-35 分钟才能完成特定任务。但有时,完成同样的任务需要不到 2 小时。
ItemProcessor
如果分配的任务在给定的时间内没有完成,有没有办法重试我的?
我正在寻找一些 Java/Spring 内置功能,而不是编写自己的超时逻辑。
c# - 具有功能的 Polly 重试策略不等待结果
我正在尝试将现有功能转换为 Polly Retry 策略
转换成这个
测试代码是
当我断言该res
值时,我没有得到正确的结果。调试跟踪我到Execution
没有正确等待结果的地方。
调用次数test function
正确。但是日志记录混乱,最终结果没有结果fake
c# - 在使用 Polly 重试之前检查响应的字符串内容
我正在使用一个非常不稳定的 API。有时我得到500 Server Error
了Timeout
,其他时候我也得到500 Server Error
了,因为我给了它无法处理的输入SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
。
这两种情况都给了我HttpRequestException
,但我可以查看来自服务器的回复消息并确定异常的原因。如果是超时错误,我应该再试一次。如果输入错误,我应该重新抛出异常,因为再多的重试都无法解决错误数据的问题。
我想对 Polly 做的是在尝试重试之前检查响应消息。但是到目前为止我看到的所有样本都只包含异常类型。
到目前为止,我已经想出了这个:
有没有更好的方法来做这种检查?
c# - 如何使用 Polly 对任意“失败”条件进行重试和瞬态故障处理
我想使用Polly不是检查明显的“失败”,而是检查其他情况。具体来说,我想进行一次(异步)调用,例如httpClient.GetAsync(...)
,出于这个问题的目的,我知道它会成功 - 也就是说,在执行以下操作之后:
response.IsSuccessStatusCode
将true
。
让我们假设然后我做标准:
var content = await response.Content.ReadAsStringAsync();
和
content == { "Name":"Tom", "Age", 30", "ErrorCode":"12345" }
ErrorCode
我希望我的策略逻辑根据响应部分的内容(或不存在或存在)来执行。所以这只是我打的一个电话。
我怎样才能用波莉做到这一点?
android - (x) 分钟后滑动刷新布局重试进度条
我阅读了文档,SwipeRefreshLayout
但找不到RetryPolicy
. progressbar
如果在 5 秒内未获取数据,我希望 SwipeRefreshLayout 显示重试。
任何准则
wso2 - wso2 API 重试机制在节流
我是 WSO2 平台的新手。我想知道当我们超过配额时如何存储和重播消息。问候。
microsoft-graph-api - Microsoft Graph for OneDrive 限制问题 - RetryAfter 属性为空
我们使用 Microsoft Graph.dll(版本 1.2.1)和 Microsoft.Graph.Core.dll(版本 1.3.1)来提取 OneDrive 文件夹和文件信息(有权限)。一年多来,我们一直在成功地做到这一点。这样做时,我们有时会受到限制。发生这种情况时,会引发“Microsoft.Graph.ServiceException”类型的异常。这有一个状态码。如果状态码是 429,那么我们知道我们已被限制,我们可以检查异常中的响应标头以提取所需的“RetryAfter”时间段。我相信通常 RetryPeriod 是 4000 毫秒。然而,我们最近才开始看到在这个属性中返回 null ——这似乎不正确,我们不相信我们以前见过它。
有没有其他人看到这个和/或有解决方法?有什么变化吗……?
非常感谢 ....
c# - 如何使用 dotnet core 和 Polly 添加动态重试策略
我有一个 dotnet core (2.1) 控制台应用程序,我正在使用 Polly 用重试策略包装我的一段代码。这适用于如下所示的简单用例:
然后我使用以下代码对其进行测试:
执行代码时,如预期的那样捕获了套接字异常。
我正在寻找一种灵活的方法来用多个策略而不是一个策略来包装我的代码。我更改了代码以将多个包装的 Polly 重试策略动态添加在一起,以允许捕获多个错误类型并轻松更改我正在寻找的异常。我将代码更改为:
当我使用此代码进行测试时,上面的代码按预期工作并重试了 5 次。
但是当我尝试以下操作时,它不会按预期重试 2 次(它根本不会重试):
我究竟做错了什么?以上所有内容的重点是根据我的需要动态地执行多个策略。除了 WrapPolicy,还有更好的方法吗?
提前感谢您的指点!
c# - C# ExponentialBackOff 到时间跨度 Polly
我正在用 Polly 框架替换我当前的重试策略。我曾经这样定义我的重试策略:
其中DefaultClientRetryCount
是重试次数,然后指数退避根据变量计算重试之间的睡眠时间:DefaultMinBackoff
是重试之间的最小时间跨度;DefaultMaxBackoff
是最大时间跨度;并且DefaultClientBackoff
是用于计算重试之间的随机增量的默认值。
在 Polly 上,我这样定义我的 retryPolicy:
其中retryCount
是重试次数,sleepDuration
是重试之间的时间。
如何复制上一个策略生成的重试之间的时间跨度以作为参数发送到WaitAndRetryAsync
Polly 上的方法?