我是靠谱客的博主 拼搏学姐,最近开发中收集的这篇文章主要介绍java原生任务超时处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 在一般的任务处理中,可能会出现任务超时处理的情况,比如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原生任务超时处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部