java - 使用 RestTemplate 消耗两个 RESTful API 时出现 HTTP 409 错误 - 已解决
问题描述
解决了! 其中一个 API 对查询间隔有一些限制,即最少 60 秒。我试图以比预期更快的速度调用 API。
但是,API 应该返回 HTTP 429 错误而不是 409。
我有一个简单的 Spring Boot 项目,其计划任务如下:
@Autowired
private RestTemplate restTemplate;
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.basicAuthentication(username, password).build();
}
@Scheduled(fixedRate = 10000)
public void getData() throws Exception {
String realtime_data = restTemplate.getForObject(realtime_addr, String.class);
log.info(realtime_data);
String legal_data = restTemplate.getForObject(legal_addr, String.class);
log.info(legal_data.substring(0,200));
我有两个不同地址的不同 API,我想使用它们。
但我最终遇到了以下异常:
org.springframework.web.client.HttpClientErrorException$Conflict:409 冲突 在 org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:91) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] 在 org.springframework.web.client.DefaultResponseErrorHandler。 handleError(DefaultResponseErrorHandler.java:122)~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:102)~[spring -web-5.1.9.RELEASE.jar:5.1.9.RELEASE] 在 org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63) ~[spring-web-5.1.9.RELEASE.jar: 5.1.9.RELEASE] 在 org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:778) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] 在 org.springframework。 web.client.RestTemplate.doExecute(RestTemplate.java:736)~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE]在org.springframework.web.client.RestTemplate.execute(RestTemplate.java:670)~[spring-web-5.1.9 .RELEASE.jar:5.1.9.RELEASE] 在 org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:311) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE]在 ir.pisys.rest.Schedule.reportCurrentTime(Schedule.java:64) ~[classes/:na] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_221] 在 sun.reflect.NativeMethodAccessorImpl .invoke(Unknown Source) ~[na:1.8.0_221] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_221] at java.lang.reflect.Method.invoke(Unknown Source) ~[ na:1.8.0_221] 在 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84) ~[spring-context-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.1.9 .RELEASE.jar:5.1.9.RELEASE] 在 java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.8.0_221] at java.util.concurrent.FutureTask.runAndReset(Unknown Source) [na :1.8.0_221] 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(未知来源)[na:1.8.0_221] 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(未知来源)[na:1.8。 0_221] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_221] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_221] 在 java.lang 。线。运行(未知来源)[na:1.8.0_221]
问题是什么?
解决方案
推荐阅读
- angular - Angular Material - 垫表行工具提示
- android - 如何将 CharSequence 的 Arraylist 转换为 String 的 ArrayList
- sql - 在两个不同的列中搜索和匹配索引,返回第三列的总和 - Postgresql
- python - Google Directory API 返回过时的值
- python - 检查系列中的元素是否相对于系列熊猫中的先前值增加,快速解决方案
- dbeaver - 将 dbeaver 创建表脚本转换为 sql server 脚本
- python-3.x - Groupby 在 pandas 数据框中按季度确定日期并查找它们的出现次数
- spring - 春季启动 liquibase。在实体和数据库之间执行 DIFF
- vue.js - 路径在本地主机上工作,但在生产服务器上不工作 [vue.js]
- sql - 为什么这个 SUM() 字段没有按预期工作?