背景:在政府开发了一个应用系统,主要功能是让企业填写企业资质信息,然后通过给定的公式,统计这一系列的信息,以得分的形式展示给政府领导查看。目前有1300家企业填报。由于得分是实时显示的,所以导致统计功能很慢。
代码运行流程:
1、查出1300企业信息
2、遍历1300企业信息,ji计算每家企业得分信息。每家预计时间为0.3秒。合计390秒。导致页面请求超时
3、导出(用jxljar)
解决方案:
由于处理业务的,所以需要能有返回值的线程。用:Callable
直接上代码
1、调用线程的代码
List
2、线程的代码
packageusi.jszx.controller;
importjava.util.List;
importjava.util.Map;
importjava.util.concurrent.Callable;
importjavax.servlet.http.HttpSession;
importorg.apache.commons.lang3.StringUtils;
importusi.jszx.entity.ScoreMain;
importusi.jszx.service.DeclareMasterService;
importusi.jszx.service.DeclareService;
importusi.jszx.service.EnterpriseQueryService;
importusi.sys.dto.AuthInfo;
importusi.sys.util.ConstantUtil;
classMyCallableimplementsCallable