package com.dy.aceMw.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){ if(task != null){ //当有异常时,try catch中的代码可没有执行freeAndCleanTask TaskPool.freeAndCleanTask(task); } } } } @Override public void destroy(){ } @Override public boolean isDestroy(){ return false ; } }); } catch (Exception e) { log.error("在RtuDataNode内发生异常", e); } return true ; } }