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

0 投票
0 回答
133 浏览

logging - Apache Camel 3.7.0 断路器和重新交付政策

我们正在尝试将断路器 (resilience4j) 与重新交付政策相结合(参见下面的路线)

我们注意到,如果在 CB 打开时交换处于重试过程中,则会继续调用 onRedelivery 处理器(请参阅日志)。但是,不会调用实际执行出站调用的处理器。

这真的很令人困惑,尤其是当我们增加 kafka 消费者时。这是这种方式吗?可以用其他方式处理吗?我们尝试了“retryUntil”,但这仅在合法重试期间调用(具有 RetryException 的那些 - 不是具有 CB 异常的那些)。

0 投票
0 回答
90 浏览

jboss7.x - 如何在 Jboss/Wildfly 中测试分配重试超时参数?

如何在 Jboss/Wildfly 服务器中测试分配重试超时参数,该参数将在抛出异常之前重试分配连接?当我在standalone.xml 中设置验证参数(例如validate-on-match)时,我可以很容易地检查服务器是否自动重新连接到数据库,如下面的服务器日志。

WARN [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool](批处理线程 - 2)IJ000621:破坏无法验证的连接:

问题:如何测试分配重试的工作原理?实际上我想检查重试策略在 Jboss EAP 中是如何工作的,以及当发生瞬态错误时我该如何处理?希望我的问题很清楚,有人可以给我建议。

0 投票
0 回答
16 浏览

retrypolicy - 在重试场景中,客户端是否可以在第二次尝试重试后从第一次尝试中获取响应?

情况就是这样。

我有一个客户端和服务器。客户端有重试策略的配置。我遇到了重试和超时的问题。这是上下文。客户端将在 5 秒后超时,然后再重试 2 次。如果服务器需要 7.5 秒来处理,则客户端在 15 秒后每次尝试都会超时。

下面是流程:

我的问题是为什么客户端无法在 7.5 的时间戳接受响应。客户端只需等待 15 秒并超时,即使服务器可以处理两个请求并提供响应。特别是如果尝试是读取 API。读取的 API 应该是幂等的,取其中一个都可以。

如果有人能提供一些见解,我真的很感激。

0 投票
0 回答
56 浏览

google-cloud-platform - PubSub 死信和重试策略未按预期工作

如下所示,我将订阅设置为重试 5 次,然后他们将消息移动到死信队列。我还将重试策略设置为指数级后退。然而,这并没有发生。所有配置都是使用 Web 控制台界面完成的。

在此处输入图像描述

有什么原因这不起作用吗?以上所有设置似乎都被忽略了。似乎仍然会立即连续重试。

0 投票
0 回答
128 浏览

java - Failsafe : 执行 void 方法并根据成功/失败返回结果

我正在使用Failsafe框架(链接)来执行一个方法。我的用例是执行一个void方法 x 次并根据执行结果返回successor 。failure下面是我的(伪)代码的样子:

我可以使用run方法Failsafe来执行我的 void 方法(即methodThatNeedsToExecute())。但是,如何根据重试执行的方式返回某些内容?

0 投票
1 回答
387 浏览

spring - 如何使用 Java 配置在 Spring Batch 中配置 RetryTemplate

我正在尝试在 Spring Batch 中设置 RetryTemplate,我只是找不到有关如何将 RetryTemplate 添加到 StepBuilderFactory 的示例。我发现这个示例可以在 SpringBoot 应用程序中进行设置,https ://dzone.com/articles/how-to-use-spring-retry-template但在 Spring Batch 上没有运气。

我尝试使用 RetryTemplate 的原因是设置指数 BackOffPolicy (Spring Batch 如何为失败的作业配置重试周期)。

我想连接 RetryTemplate 就像设置 RetryTemplate Bean 一样简单,类似的东西(来自@Mahmoud Ben Hassine 的修改代码回答Spring Batch 如何为失败的作业配置重试周期):

我没有找到将其连接到 StepBuilderFactory 的方法。我想这将类似于“标准”重试:

有人有关于如何使用 Java 配置进行设置的示例/模板吗?

任何帮助/示例表示赞赏。谢谢,马库斯。

0 投票
1 回答
556 浏览

azure - 如何向使用 Azure 服务总线 Java SDK 的发布者/订阅者客户端添加重试选项(重试策略)?

我正在测试 Azure 服务总线发布者/订阅者客户端的重试选项,因为在突然连接失败后,客户端将不会重试发送或接收消息。

以下是发布者客户端 sendMessage() 方法的代码,我已将订阅的最大传递计数设置为 1000。客户端仍然使用默认的 retryPolicy 值,我看不到它重试,就像我在 amqpRetryOptions 中给出的那样。

我的方法错了吗?

  • 如果是这样,标准方法是什么?
  • 如果没有,如何处理重试机制?

如果没有怎么办

0 投票
2 回答
807 浏览

http - 请求超时的 http 重试 (408)

使用 hashcorpgo-retryablehttp库 ( https://github.com/hashicorp/go-retryablehttp )

它会自动重试所有5xx代码:

retryablehttp 在特定条件下执行自动重试。主要是,如果客户端返回错误(连接错误等),或者如果收到500范围的响应码(501除外),则在等待一段时间后调用重试。否则,返回响应并留给调用者解释。

是否有可能重试Request Timeout,例如在408http 状态代码上只是 ootb?
或者我应该构建一些自定义包装器?

0 投票
0 回答
131 浏览

aws-lambda - AWS Lambda 重试次数超过最大重试次数

我已经配置了一个 AWS Lambda,如果特定的 SQS 队列接收到消息,它将被触发,然后它将使用并处理该消息。如果发生任何异常,lambda 将重试 2 次,如果再次失败,则消息将转到 DLQ。

SQS 配置:

Lambda 配置:

一切正常。lambda 为错误场景重试了 2 次,然后将数据发送到 DLQ。但是现在,突然之间,一条消息在飞行中停留了 15 个小时。现在,由于最大接收设置为 10,它在进入 DLQ 之前重试了 10 次。这可能是什么原因?

0 投票
1 回答
60 浏览

c# - 将 IConfiguration 传递给静态类的好方法?

我正在使用这个使用 polly 进行重试的小巧扩展。

我们可以看到它定义了一个静态重试策略:

理想情况下,我想进行RetryTimes设置。但是,我不确定如何传递IConfigurationRetryTimes静态属性?

我能想到的工作是将 polly 策略定义为单例(这样我就可以读取设置)。然后在这个扩展方法中,我实际上传递了策略。这是在 .NET Core 中处理它的正确方法吗?