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.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 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 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;
|
try {
|
/**************** lijun add @ 20200906 ***************/
|
//»ñȡָ¶¨ÌìÊý֮ǰµÄʱ¼ä
|
Date critical = PowerDataSave_SQL.getDateBefore(nowTime, MaxRecordTimeLong);
|
//ɾ³ýÐÞ¸Äʱ¼ä³¬Ê±µÄÊý¾Ý±í
|
PowerDataSave_SQL.deleteHistoryData(m_ConnPool, critical);
|
/**********************************************************/
|
if(timelong < MinRecordTimeLong) {
|
continue;
|
}
|
|
boolean isRecorded = false;
|
|
for(int i=0; i<m_AL_Data.getItemCount(); i++) {
|
PowerData_RT rtdata = m_AL_Data.getItem(i);
|
|
/*
|
if(battData.getBattState() == BattStatData.BATTSTATE_NULL) {
|
continue; //Ïû³ýδÁ¬½Ó¹ýµÄµç³Ø×é
|
}
|
*/
|
isRecorded = true;
|
//¼Ç¼µ±Ç°µç³Ø×éµÄÀúʷʵʱ¼Ç¼
|
PowerDataSave_SQL.RecordPowerRealData(m_ConnPool, rtdata); //è®°å½çµæ± ç»çæ¾çµè®°å½
|
sleep(50);
|
}
|
|
if(isRecorded) {
|
lastTime = nowTime;
|
}
|
/**************** mxpopstar edit @ 20200817 ***************/
|
/*sleep(500);*/ //this statement is big bug, because line 59 use "continue" statement;
|
/**************** mxpopstar edit @ 20200817 ***************/
|
} catch (Exception e) {
|
logger.error(e.toString(), e);
|
}
|
}
|
}
|
|
|
|
}
|