将请求发送到Spring服务器而无需等待响应

问题描述

我正在编写两个进行一些计算的服务。其中之一必须仅向第二个服务发送大量请求,而无需等待响应:

...
for (String url: oneservice.getUrlList()) {
    try {
       sendRequests(restTemplate,url);
     } catch (InterruptedException e) {
       e.printstacktrace();
     }
}
...

@Async
void sendRequests(RestTemplate restTemplate,String url) throws InterruptedException {
   restTemplate.postForLocation("http://second-servive/calculation/" + url,String.class);
}

我在第二个服务的控制器中:

@RequestMapping(value = "calculation/{url}",method = RequestMethod.POST)
public void getShortCircuitCalculation(@PathVariable String url) {
     secondService.getCalculation(url);
}

我使用eureka服务器创建了第二个服务的许多实例,以加快计算速度。但是,使用 @Async 批注和第二个服务的实例需要很多时间,就像单个实例一样。第一服务仍在等待第二服务的响应。我尝试在单独的线程中发送响应,但是得到了相同的结果。

有什么方法可以不等待第二项服务的响应并继续发送响应,以便实例进行计算?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)