背景:接口请求的时候如果是同步,那么有时业务逻辑处理时间很长,请求就会超时!
所以需要在接口请求过来时,就先响应,再去执行业务逻辑。
1.创建一个Controller类用来接收接口请求
@RestController
@RequestMapping("/test")
public class Controller {
private static Logger log = LoggerFactory.getLogger(WelfarepriceController.class);
//创建线程池
private static ScheduledExecutorService executor = Executors.newScheduledThreadPool(5)
@RequestMapping(value="init",method = RequestMethod.POST)
public AjaxResult init(@RequestBody String json){
AjaxResult result = new AjaxResult();
//方法加入到线程池中去执行
executor.execute(new ToServer(json)));
//返回响应结果
result.setRetcode(0);
result.setRetmsg("成功");
return result;
}
}
2.再建线程类
public class ToServer extends Thread {
private String json;
//需要什么参数就自己定义
public ToServer(String json) {
this.json = json;
}
/**
* 执行定时请求
*/
@Override
public void run() {
// 把run方法里的内容换成你要执行的内容
service.doService(json);
}
}
如果你是湖南的 欢迎加入 湖南人在深圳-Java群:557651502