当响应为5xx时,我想在等待10秒后重试请求3次。但我看不到一个我能用的方法。在对象上
WebClient.builder()
.baseUrl("...").build().post()
.retrieve().bodyToMono(...)
吾见方法:
在有重试计数但无延迟的条件下重试
.retry(3, {it is WebClientResponseException && it.statusCode.is5xxServerError} )
有退避和次数但没有条件的重试
.retryBackoff
还有一个RetryWhen
,但我不确定如何使用它
使用Reactor-Extrace,您可以这样做:
.retryWhen(Retry.onlyIf(this::is5xxServerError)
.fixedBackoff(Duration.ofSeconds(10))
.retryMax(3))
private boolean is5xxServerError(RetryContext<Object> retryContext) {
return retryContext.exception() instanceof WebClientResponseException &&
((WebClientResponseException) retryContext.exception()).getStatusCode().is5xxServerError();
}
更新:使用新的API,相同的解决方案将是:
.retryWhen(Retry.fixedDelay(3, Duration.ofSeconds(10))
.filter(this::is5xxServerError));
//...
private boolean is5xxServerError(Throwable throwable) {
return throwable instanceof WebClientResponseException &&
((WebClientResponseException) throwable).getStatusCode().is5xxServerError();
}
问题内容: 我正在尝试将静态库链接到共享库,但出现以下错误 但这可以在32位计算机上工作,而不会出现任何此类错误。我尝试将标记手动添加到Makefile中也不能解决问题 我按照这里的建议尝试了该标志,但没有成功。 创建liblog4cplus.a: 并将-fPIC添加到CXXFLAGS和CFLAGS 然后用于编译我的共享库: 问题答案: 假设您正在生成一个共享库,最有可能发生的事情是您使用的变体未
我尝试了这里建议的标志,但没有成功。 并将-fpic添加到CXXFLAGS和cflags
问题内容: 我编写了JAX-RS的附加内容,并将Java EE 6 API包含为Maven依赖项。 然后我有一个测试用例: 但我得到一个错误: 如果我将Jersey作为JAX-RS实现而不是Java EE API包含在内,那么一切都很好。 感谢BalusC的提示,我知道了我的猜测:Java EE 6只是一个没有方法主体的API: 来自java.net博客 您可以使用此jar编译代码,但是当然不能使
使用Axon Framework-我能够重播整个事件存储并重新创建视图模型。但是是否可以为特定类型或特定ID重播事件。 提前致谢
我有一个类(A),它包含另一个类(B)的自动生成依赖项,而另一个类(B)又具有另一个类C的自动生成依赖项。 我正在尝试使用Mockito编写测试用例,并对依赖项使用spy注释。我在监视C类时遇到空指针错误。 如何从A类执行此单元测试?
当在我的pom.xml中启用强制使用JUnit47提供程序时,我得到: pom.xml如下所示