问题描述
我正在编写两个进行一些计算的服务。其中之一必须仅向第二个服务发送大量请求,而无需等待响应:
...
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 (将#修改为@)