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