1. 程式人生 > >Java 介面請求非同步響應

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