java - 如何实现restTemplate的重试机制
问题描述
我已经实现了一个通过 Resttemplate 调用外部服务的 java 方法。同样,我还在该方法中实现了一些额外的业务逻辑。我如何为这些休息调用实现重试机制。还需要考虑以下几点。
- 我无法为整个方法添加重试。
- 最好为休息调用添加重试(通过resttemplate)。
- 应该有一种方法可以禁用不需要的休息呼叫的重试选项。
解决方案
Spring 提供了带有@Retry注解的重试机制。您必须使用以下依赖项。
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
<version>1.1.5.RELEASE</version>
</dependency>
Spring 提供了以下注解。
Spring 重试注解
@EnableRetry - 在 spring boot 项目中启用 spring 重试
@Retryable – 表示任何方法都可以重试
@Recover – 指定回退方法
我在下面提供示例代码。
@Configuration
@EnableRetry
@SpringBootApplication
public class MyApplication {
}
您可以参考完整的示例以了解更多信息。
推荐阅读
- python - Flask 在 WSGI 服务器中抛出 ascii 字符错误,但在调试本地服务器中没有?
- c++ - 如何在单个 Visual Studio Code 解决方案中编译多个独立的 C++ 程序
- flow-project - 运行 python 示例/simulate.py 时开始使用时出现错误
- reporting-services - 自定义添加的状态原因不会通过 FilteredView 显示在 SSRS 报告中
- ios - 在 iOS Swift 中使用 SvgKit 更改 SVG 颜色
- python - Django GraphQL 端点测试无法使用“变量”字典
- twilio - Twilio iOS sdk - 一对一视频通话
- jquery - 打开后如何使用 jQuery 关闭/隐藏此 div?
- networking - 如何使 TCP 套接字连接在具有不同 ISP 的 WAN 上工作?
- android - ReactApplicationContext 无法转换为 AppCompatActivity