Java 接口请求异步响应

背景:接口请求的时候如果是同步,那么有时业务逻辑处理时间很长,请求就会超时!
所以需要在接口请求过来时,就先响应,再去执行业务逻辑。

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

你可能感兴趣的:(java)