KAKO_Reader.java
3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package com.sy.IMF;
import com.caac.imf.api.IMFClient;
import com.sy.bwAnalysis.AnalysisRoute;
import com.sy.task.LocalFileTaskHandle;
import com.sy.utils.XMLThreadPoolFactory;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
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;
}
@Override
public void run() {
try{
isrunning =true;
logger.info("********已进入读取线程**********");
logger.info("********读取线程状态true**********");
logger.info("********Client-INFO= "+client+"********");
Thread t =Thread.currentThread();
ThreadPoolExecutor threadPoolEs = XMLThreadPoolFactory.instance("kakou");
AnalysisRoute analysisRoute= null;
LocalFileTaskHandle localFileTaskHandle = null;
while(true) {
if (IMF_Tesk.LOGIN_OK){
String message = this.client.getMSG();
// logger.info(t.toString()+"读取线程已获取到消息");
if (StringUtils.isNotEmpty(message)) {
// logger.info(message);
// analysisRoute = new AnalysisRoute();
// analysisRoute.setMessage(message);
localFileTaskHandle = new LocalFileTaskHandle();
localFileTaskHandle.setMessage(message);
threadPoolEs.execute(localFileTaskHandle);
logger.info("[THREADPOOL-INFO]-当前运行线程总数量: " + threadPoolEs.getActiveCount());
logger.info("[THREADPOOL-INFO]-当前线程数量: " + threadPoolEs.getTaskCount());
logger.info("[THREADPOOL-INFO]-完成的线程总数量: " + threadPoolEs.getCompletedTaskCount());
logger.info("[THREADPOOL-INFO]-线程队列数量: " + threadPoolEs.getQueue().size());
logger.info("[THREADPOOL-INFO]-空闲线程释放时间(秒): " + threadPoolEs.getKeepAliveTime(TimeUnit.SECONDS));
//AnalysisRoute.analysis(message);
// if(message.indexOf("<TYPE>CARM</TYPE>") > 0){
// this.client.sendMSG();
// }
}else {
// logger.info("[READER-INFO]-获取到空消息,不处理");
// System.out.println("[READER-INFO]-获取到空消息,不处理");
}
}
else {
logger.info("[READER-INFO]-CLIENT为未登录状态,不获取消息!!!!!");
}
try {
Thread.sleep(200L);
} catch (InterruptedException var3) {
logger.info("********读取线程循环获取消息异常---->"+var3.toString());
var3.printStackTrace();
}
}
}catch (Exception e){
isrunning=false;
logger.info("****************读取线程不在了****************");
logger.info("读取线程异常----------->"+e.toString());
}
isrunning=false;
}
}