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