审查视图

src/main/java/com/sy/IMF/KAKO_Reader.java 3.5 KB
1 2 3
package com.sy.IMF;

import com.caac.imf.api.IMFClient;
zhangFan authored
4
import com.sy.bwAnalysis.AnalysisRoute;
朱兆平 authored
5
import com.sy.task.LocalFileTaskHandle;
6
import com.sy.utils.XMLThreadPoolFactory;
7
import org.apache.commons.lang.StringUtils;
8 9
import org.apache.log4j.Logger;
10 11 12
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
13 14 15 16 17 18 19 20 21
public class KAKO_Reader extends Thread{
    protected static final Logger logger = Logger.getLogger(KAKO_Reader.class);
    private IMFClient client;
    public static  boolean isrunning;

    public KAKO_Reader(IMFClient client) {
        this.client = client;
    }
22
    @Override
23 24 25
    public void run() {
        try{
            isrunning =true;
26
            logger.info("********已进入读取线程**********");
xudada authored
27
            logger.info("********读取线程状态true**********");
28 29
            logger.info("********Client-INFO= "+client+"********");
            Thread t =Thread.currentThread();
30
            ThreadPoolExecutor threadPoolEs = XMLThreadPoolFactory.instance("kakou");
31
            AnalysisRoute analysisRoute= null;
朱兆平 authored
32
            LocalFileTaskHandle localFileTaskHandle = null;
33
            while(true) {
xudada authored
34
                if (IMF_Tesk.LOGIN_OK){
35
                    String message = this.client.getMSG();
36
//                    logger.info(t.toString()+"读取线程已获取到消息");
37
                    if (StringUtils.isNotEmpty(message)) {
zhangFan authored
38
                     //   logger.info(message);
朱兆平 authored
39 40 41 42 43 44 45

//                        analysisRoute = new AnalysisRoute();
//                        analysisRoute.setMessage(message);

                        localFileTaskHandle = new LocalFileTaskHandle();
                        localFileTaskHandle.setMessage(message);
                        threadPoolEs.execute(localFileTaskHandle);
46
                        logger.info("[THREADPOOL-INFO]-当前运行线程总数量: " + threadPoolEs.getActiveCount());
朱兆平 authored
47
                        logger.info("[THREADPOOL-INFO]-当前线程数量: " + threadPoolEs.getTaskCount());
48
                        logger.info("[THREADPOOL-INFO]-完成的线程总数量: " + threadPoolEs.getCompletedTaskCount());
朱兆平 authored
49
                        logger.info("[THREADPOOL-INFO]-线程队列数量: " + threadPoolEs.getQueue().size());
50 51 52
                        logger.info("[THREADPOOL-INFO]-空闲线程释放时间(秒): " + threadPoolEs.getKeepAliveTime(TimeUnit.SECONDS));

                        //AnalysisRoute.analysis(message);
zhangFan authored
53 54 55
//                        if(message.indexOf("<TYPE>CARM</TYPE>") > 0){
//                            this.client.sendMSG();
//                        }
56
                    }else {
57 58
//                        logger.info("[READER-INFO]-获取到空消息,不处理");
//                        System.out.println("[READER-INFO]-获取到空消息,不处理");
59 60 61
                    }
                }
                else {
62
                    logger.info("[READER-INFO]-CLIENT为未登录状态,不获取消息!!!!!");
63 64 65
                }

                try {
66
                    Thread.sleep(200L);
67
                } catch (InterruptedException var3) {
68
                    logger.info("********读取线程循环获取消息异常---->"+var3.toString());
69 70 71 72 73 74
                    var3.printStackTrace();

                }
            }

        }catch (Exception e){
zhangFan authored
75 76
            isrunning=false;
            logger.info("****************读取线程不在了****************");
77
            logger.info("读取线程异常----------->"+e.toString());
78
        }
xudada authored
79
        isrunning=false;
80 81
    }
}