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