@RequestMapping(value = "ehr", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON)
@ResponseBody
public User getUser() {
User u = new User();
Future<User> future = poolTaskExecutor.submit(ehrDownloadTask);
boolean flag = future.isDone();
while (!flag) {
u.setMsg("未完成");
return u;
}
try {
u = future.get();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("任务完成!");
return u;
}
假设我我请求一个耗时任务放到线程池里执行,我想如果没执行完返回前台未完成,前台可以刷新页面显示完没完成,但是一刷新,我就又新起了一个线程去执行,所以一直返回未完成。请教下这个怎么写?
写个简单实现:
前台轮训直到正确返回。
Key你可以用我这样的SessionID,也可以自己根据逻辑生成
如果是分布式Tomcat可以用Redis代替HashMap