java - Spring Rest 中的异步 Worker
问题描述
我正在创建一个 Sprint Rest API 来收集多个请求并调用另一个 API。到目前为止我所做的是:
final String BASE_URL = "http://localhost:9001/";
@RequestMapping("/getCurrency")
public JSONObject GetCurrency(@RequestParam List<String> currencyCode) {
RestTemplate restTemplate = new RestTemplate();
URI targetUrl = UriComponentsBuilder.fromUriString(BASE_URL)
.path("getCurrencyISO")
.queryParam("q", String.join(",", currencyCode))
.build()
.encode()
.toUri();
return restTemplate.getForObject(targetUrl, JSONObject.class);
}
它完美地工作,它使用正确的参数调用核心 API 并返回它们。我正在尝试改善核心 API 的网络流量。为此,我试图收集对我的 API 的所有请求,一旦我的队列达到 10 个请求,我将转到核心 API 并获取结果而不是返回给客户端。如果我不能在 5 秒内填满我的队列,我将简单地转到核心 API 并返回给客户端。
我需要为此创建一个异步工作者,我相信它可以检查队列是否已满或是否经过了 5 秒。我对 Spring Rest 开发真的很陌生,实现这一目标的好做法是什么?
解决方案
推荐阅读
- javascript - 悬停在 Span 上移动图像
- python - 我收到此错误“TypeError:只能将 str(不是“NoneType”)连接到 str'
- amazon-web-services - Spark/Yarn UI 视图都使用 dns 名称而不是 IP:port 名称,有什么方法可以改变吗?
- python - for循环时如何在数据框中添加行?
- google-drive-api - 如何在 Colab 中使用已安装的 Google Drive 加快解压缩/读取文件的速度?
- python - 使用 Python OpenCV 删除图像的黑色标题部分
- awk - 当文本块中必须存在特定字符串时,如何使用 sed/awk 在两个模式之间提取文本
- javascript - 字符串化对象键的名称
- sqlite - 在终端(iOS)中创建一个 sqlite 表
- java - 在 AppCompatActivity 中使用 ViewModelProvider(this) 时出现运行时错误