package com.power.datasave; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.util.Date; import com.power.mysql.MysqlConnPool; import com.base.Com; import com.power.data.PowerData_RT; import com.power.data.PowerData_RT_Array; public class PowerRealDataSave_Thread extends Thread{ public MysqlConnPool m_ConnPool; public PowerData_RT_Array m_AL_Data; Logger logger = null; public static int MinRecordTimeLong = 60; //ÿ´Î¼Ç¼µÄ×î¶Ìʱ¼ä¼ä¸ô--60S // public static int MaxRecordTimeLong = 366*3; //×î´ó¼Ç¼ÀúÊ·Êý¾Ýʱ¼ä--3Äê public static int MaxRecordTimeLong = 366; //×î´ó¼Ç¼ÀúÊ·Êý¾Ýʱ¼ä--1Äê public PowerRealDataSave_Thread(MysqlConnPool pool,PowerData_RT_Array data) { logger = LogManager.getLogger(this.getClass()); m_ConnPool = pool; m_AL_Data = data; } public void run() { logger.info("PowerRealDataSave_Thread: Started ..."); Date lastdelTime = new Date(0); Date lastTime = new Date(); //Ïß³ÌÆô¶¯Ç°ÐÝÃß60Ãë for(int i =0; i<60; i++) { try { sleep(1000); } catch (InterruptedException e) { logger.error(e.toString(), e); } } logger.info("PowerRealDataSave_Thread: Start Record......"); Date nowTime = null; while(true) { /**************** mxpopstar add @ 20200817 ***************/ try { sleep(500); } catch (InterruptedException e1) { // TODO Auto-generated catch block logger.error(e1.toString(), e1); } /**********************************************************/ nowTime = new Date(); long timelong =(nowTime.getTime()-lastTime.getTime())/1000; long deltimelong = (nowTime.getTime()-lastdelTime.getTime())/1000; try { /**************** lijun add @ 20200906 ***************/ //ɾ³ýÐÞ¸Äʱ¼ä³¬Ê±µÄÊý¾Ý±í if(deltimelong > 60*60*24) { //»ñȡָ¶¨ÌìÊý֮ǰµÄʱ¼ä Date critical = PowerDataSave_SQL.getDateBefore(nowTime, MaxRecordTimeLong); logger.info("¿ªÊ¼Ñ­»·É¾³ý"+Com.get_DTF(critical, Com.DTF_YMDhms)+"֮ǰ´´½¨µÄµçÔ´ÀúʷʵʱÊý¾Ý¿â±í"); //ɾ³ýÐÞ¸Äʱ¼ä³¬Ê±µÄÊý¾Ý±í PowerDataSave_SQL.deleteHistoryData(m_ConnPool, critical); lastdelTime = nowTime; } /**********************************************************/ if(timelong < MinRecordTimeLong) { continue; } boolean isRecorded = false; for(int i=0; i