Administrator
2024-07-16 ee711d38f66222915bc81332c98af677fa5cd96c
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
package com.dy.rtuMw.server.rtuData;
 
import com.dy.common.queue.NodeObj;
import com.dy.common.threadPool.ThreadPool;
import com.dy.common.threadPool.TreadPoolFactory;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
 
public class RtuDataNode implements NodeObj {
 
    private static final Logger log = LogManager.getLogger(RtuDataNode.class.getName());
 
    public Object obj ;//数据
 
    public RtuDataNode(Object obj){
        this.obj = obj ;
    }
    /**
     * 自己处理自己
     * @return
     */
    public boolean dealSelf(){
        try {
            ThreadPool.Pool pool = TreadPoolFactory.getThreadPoolLong() ;
            pool.putJob(new ThreadPool.Job() {
                public void execute() {
                    if(obj != null){
                        TaskSurpport task = null ;
                        try{
                            task = TaskPool.popTask() ;
                            if(task != null){
                                task.execute(obj);
                            }else{
                                log.error("未得到RTU主动上报数据处理任务!");
                            }
                        }catch(Exception e){
                            log.error("上行数据任务池处理数据时发生异常", e);
                        }finally {
                            if(task != null){
                                TaskPool.freeAndCleanTask(task);
                            }
                        }
                    }
                }
                @Override
                public void destroy(){
                }
                @Override
                public boolean isDestroy(){
                    return false ;
                }
 
            });
        } catch (Exception e) {
            log.error("在RtuDataNode内发生异常", e);
        }
        return true ;
    }
 
 
}