1 ThreadPoolExecutor pool= new ThreadPoolExecutor(5,10, 3, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
2 IbcServiceConstants ibcServiceConstants=CfwConstants.ctx.getBean(IbcServiceConstants.class);
3 String userPath=ibcServiceConstants.getUserLoginLogDir()+statDate.substring(0, 4)+"/"+statDate.substring(4, 6)+"/"+statDate;
4 String accountPath=ibcServiceConstants.getAccountLoginLogDir()+statDate.substring(0, 4)+"/"+statDate.substring(4, 6)+"/"+statDate;
5 String memberPath=ibcServiceConstants.getMemberLoginLogDir()+statDate.substring(0, 4)+"/"+statDate.substring(4, 6)+"/"+statDate;
6 String shellPath=ibcServiceConstants.getHiveShellPath();
7
8 pool.execute(new RunShellThread(shellPath, userPath, "loginuser",statDate));
9 log.info(" run load loginuser data shellPath:= "+shellPath+" ,userPath:= "+userPath);
10
11 pool.execute(new RunShellThread(shellPath, accountPath, "loginAccount",statDate));
12 log.info(" run load loginaccount data shellPath:= "+shellPath+" ,accountPath:= "+accountPath);
13
14 pool.execute(new RunShellThread(shellPath, memberPath, "loginmember",statDate));
15 log.info(" run load loginmember data shellPath:= "+shellPath+" ,memberPath:= "+memberPath);
16
17 pool.shutdown();
18 while(true){
19 try {
20 if(pool.isTerminated()){
21 BigDataTask bigDataTask=CfwConstants.ctx.getBean(BigDataTask.class);
22 bigDataTask.save(statDate);
23 break;
24 }
25 try {
26 Thread.sleep(1000l);
27 } catch (InterruptedException e) {
28 log.error(" pool error ", e);
29 }
30 } catch (Exception e) {
31 log.error(" pool aa error ", e);
32 }
33 }
34 }