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 ; 
 | 
    } 
 | 
  
 | 
} 
 |