java 调用异步方法
·
某些时候我们需要执行一个方法立即返回一个处理结果,但仍需要另一个方法去实现某些功能(如调用存储过程)实现异步处理。下面我们采用新开一个线程的方式处理:
/**
* 手动执行
*/
public void doJob() {
Map<String, Object> jsonBean = new LinkedHashMap<String, Object>();
if (!UtilTools.isEmpty(token)&& token.equals("4297f44b13955235245b2497399d7a93")) {
//开启新的线程
try {
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
cachedThreadPool.execute(new Runnable() {
public void run() {
// do task
todoUsp();
}
});
cachedThreadPool.shutdown();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
jsonBean.put("success", "true");
} else {
jsonBean.put("success", "false");
}
this.renderJson(UtilTools.encodeObject2Json(jsonBean));
}
/*需要完成功能的方法*/
public void toDoUsp(){
//调用存储过程
...
}
第二种方式采用Ajax异步方法请求,前台页面处理,执行后等待第一个结果返回再继续调用第二个方法。
更多推荐
所有评论(0)