概述
在一般的任务处理中,可能会出现任务超时处理的情况,比如http请求响应迟缓,io阻塞的等 ,那样就出现了超时的结果,jdk中已经给出了方案。
private String sendAndRecInTime(final HashMap<String, String> sendMap, final HashMap<String, String> resMap,final HashMap<String,String> sysEnv){
ExecutorService executorService = Executors.newSingleThreadExecutor();
String result = "1";
FutureTask<String> futureTask = new FutureTask<>(new Callable<String>() {
@Override
public String call() throws Exception {
if(sendAndRecToCloudReal(sendMap, resMap, sysEnv)){
logger.info("返回报文为:"+resMap);
return "0";
}else{
return "1";
}
}
});
executorService.execute(futureTask);
try {
//设置超时处理时间 10s
result = futureTask.get(10000, TimeUnit.MILLISECONDS);
} catch (InterruptedException | ExecutionException | TimeoutException e) {
//e.printStackTrace();
//超时用异常捕获,返回执行超时
futureTask.cancel(true);
result = "1";
}
executorService.shutdown();
return result;
}
最后
以上就是拼搏学姐为你收集整理的java原生任务超时处理的全部内容,希望文章能够帮你解决java原生任务超时处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复