zhubaomin
2 天以前 080c76ddb23b9f199ed2f59f3871b0058347d43e
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
package com.dy.rtuMw.server.mqtt;
 
import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
import com.dy.common.queue.NodeObj;
import com.dy.common.threadPool.ThreadPool;
import com.dy.common.threadPool.TreadPoolFactory;
import com.dy.rtuMw.server.rtuData.TaskPool;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
 
/**
 * @Author: liurunyu
 * @Date: 2025/6/4 16:14
 * @Description
 */
public class MqttSubMsgNode implements NodeObj {
 
    private static Logger log = LogManager.getLogger(MqttSubMsgNode.class.getName());
 
    protected MqttSubMsg msg;
 
    public MqttSubMsgNode(MqttSubMsg obj){
        this.msg = obj ;
    }
 
    /**
     * 自己处理自己
     * @return
     */
    public boolean dealSelf(){
        try {
            ThreadPool.Pool pool = TreadPoolFactory.getThreadPoolLong() ;
            pool.putJob(new ThreadPool.Job() {
                public void execute() {
                    if(msg != null && msg.valid()){
                        TaskSurpport task = null ;
                        try{
                            task = TaskPool.popTask() ;
                            if(task != null){
                                task.execute(msg);
                            }else{
                                log.error("未得到Mq订阅消息处理任务!");
                            }
                        }catch(Exception e){
                            log.error("Mq订阅消息任务池处理数据时发生异常", e);
                        }finally {
                            if(task != null){
                                TaskPool.freeAndCleanTask(task);
                            }
                        }
                    }
                }
                @Override
                public void destroy(){
                }
                @Override
                public boolean isDestroy(){
                    return false ;
                }
 
            });
        } catch (Exception e) {
            log.error("在MqttSubMsgObj内发生异常", e);
        }
        return true ;
    }
 
}