@Service
public class MyService {
@Retryable(maxAttempts=3, value = Exception.class,
backoff = @Backoff(delay = 100, multiplier = 2))
public List<String> doCallExternalResource() {
// ...
}
}
1. 500 Internal Server Error
2. 502 Bad Gateway
3. 503 Service Unavailable
4. 504 Gateway Timeout
但是我不明白如何使用@retryable
注释方法来实现这一点。
有人能帮忙吗?谢了。
Retryable注释用于调用服务方法,如果它因在@Retryable
上指定的特定异常而失败,它将根据maxAttemptions重试一次(在您的情况下默认为3)。可以使用@recovery
注释来指定如果带有可重试注释的方法失败时该方法应该做什么。更多信息请参见文档。
例如:
@Service
class Coordinate {
@Retryable(GatewayTimeout.class)
public void service() {
// ...main method
}
@Recover
public void recover(GatewayTimeout e) {
// do something if SQLException occurs 3 times.
}
}
在您的情况下,可以使用GatewayTimeout.class而不是HttpServererRorexCeption.Gateway_Timeout
Hi im构建一个REST API来上传文件。 我得到以下输出: 发送请求....请求:POST http://localhost:8080/mediahandler/mediahandler/api/image-upload http/1.1请求实体:content-type:multipart/form-data;已执行boundary=einjsk3ipttjp7wf-cxls-uznnng
问题内容: 在处理特定网站时,有时会收到状态码为403的http响应。在这种情况下,我想重新执行该请求(因为在我的特定情况下,该服务器实际上超载时会抛出403)。我曾尝试将a 和a 一起使用,但是它没有按我希望的方式工作;我希望在中引发异常会触发,但事实并非如此。如何获得所需的功能? 这是说明我的情况的示例代码: 问题答案: 尝试使用自定义
问题内容: 经过研究后,我在问这个问题。我确实遵循了针对此类错误的解决方案,但对我不起作用。在下面的代码中出现错误的任何建议。我正在创建一个REST API,但是当我请求url时却出现405错误。下面是URI正在请求。 下面是代码片段。 web.xml: 问题答案: 将此更改为并尝试,
我知道有人正在编写一个API,并希望使用HTTP状态代码来报告查询的结果。例如,如果用户调用,并且产品不存在,它将返回HTTP状态。我认为,因为这是一个有效的调用(即实际的HTTP请求没有格式错误),它应该返回一个code响应,并且只需要响应的主体类似于。 所以我的问题是,, 1) 使用HTTP状态码来传递非HTTP程序状态是否合适,如上面的示例所示? 2)是否有一些标准规范,或者至少是广泛使用的
我考虑在项目中使用fluent-http。 所以我尝试注入: 返回正确的字符串,但似乎没有使用状态代码。在这两种情况下,响应都有一个代码HTTP200。 注意:我发现一些状态代码是预先实现的: null
假设我们有以下 API: 没有客人匹配条件时,我应该返回哪个状态码?我的意思是没有名字为假人的客人。 它应该是带有空数组的、还是