Spring Rest中的异步工作者

时间:2021-02-17 18:59:46

标签: java spring rest asynchronous

我正在创建一个 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 开发的新手,实现这一目标的好做法是什么?

0 个答案:

没有答案