1、修改 监测数据删除 的bug

This commit is contained in:
fangshunjian
2019-01-19 20:06:36 +06:00
parent 5b9c2c792d
commit b8a51f1aa6
2 changed files with 54 additions and 71 deletions

View File

@@ -211,7 +211,7 @@ public class BaseConfig extends JFinalConfig{
timer.schedule(new DetectDataFileReadTask(timer), 2000); timer.schedule(new DetectDataFileReadTask(timer), 2000);
logger.info("文件定时读取任务启动"); logger.info("文件定时读取任务启动");
Timer clearTableTimer=new Timer(); Timer clearTableTimer=new Timer();
clearTableTimer.schedule(new LogTimerTask(clearTableTimer), new Date()); clearTableTimer.scheduleAtFixedRate(new LogTimerTask(), 1000L, 24*60*60*1000);//每天执行一次删除7天之前的数据
logger.info("监测数据定时清理任务启动"); logger.info("监测数据定时清理任务启动");
} }
} }

View File

@@ -1,70 +1,53 @@
package com.nis.gloam.task; package com.nis.gloam.task;
import java.util.Arrays; import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
import java.util.Timer; import java.util.TimerTask;
import java.util.TimerTask;
import org.apache.log4j.Logger;
import org.apache.log4j.Logger;
import com.jfinal.kit.PropKit;
import com.jfinal.kit.PropKit; import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Db;
/** /**
* 定时器 定时清除日志表中的数据 * 定时器 定时清除日志表中的数据
* @author Administrator *
* * @author Administrator
*/ *
public class LogTimerTask extends TimerTask { */
private Timer timer; public class LogTimerTask extends TimerTask {
private Logger logger=Logger.getLogger(LogTimerTask.class); private Logger logger = Logger.getLogger(LogTimerTask.class);
public LogTimerTask(Timer timer){
this.timer = timer; public LogTimerTask() {
} }
@Override
public void run() { @Override
int date = 7;//默认七天 public void run() {
try { try {
PropKit.use("config.properties"); PropKit.use("config.properties");
date=Integer.parseInt(PropKit.get("delete_logtime")); int date = PropKit.getInt("delete_logtime",7);
} catch (Exception e) { String[] clearTables = PropKit.get("detect_info_clear").split(",");
logger.info("获取时间配置失败!使用默认时间:"+date); logger.info("clearTables-->" + Arrays.toString(clearTables));
} Calendar calendar = new GregorianCalendar();
calendar.setTime(new Date());
try { calendar.add(calendar.DATE, -date);
String[] clearTables=PropKit.get("detect_info_clear").split(","); for (String table : clearTables) {
logger.info("clearTables-->"+Arrays.toString(clearTables)); if (table.startsWith("_")) {
Calendar calendar=new GregorianCalendar(); if (table.equals("_nmsc")) {
calendar.setTime(new Date()); table = "delect_info" + table;
calendar.add(calendar.DATE, -date); } else {
for(String table:clearTables){ table = "detect_info" + table;
if(table.startsWith("_")){ }
if(table.equals("_nmsc")){ }
table="delect_info"+table; String sql = "delete from " + table + " where DATA_CHECK_TIME_DIGITAL<?";
}else{ logger.debug("监测表清理sql-->" + sql + calendar.getTime().getTime());
table="detect_info"+table; Db.update(sql, calendar.getTime().getTime());
} logger.info("清理表:" + table + "完成");
}
} } catch (Exception e) {
String sql="delete from "+table+" where DATA_CHECK_TIME_DIGITAL<?"; logger.error("监测表清理失败!", e);
logger.debug("监测表清理sql-->"+sql+calendar.getTime().getTime()); }
}
Db.update(sql,calendar.getTime().getTime()); }
logger.info("清理表:"+table+"完成");
}
restart(date);
} catch (Exception e) {
logger.error("监测表清理失败!",e);
restart(date);
}
}
//定时删除日志 一周清除一次一周前的日志 可修改配置文件来设定日志保存天数
public void restart(int day){
timer.schedule(new LogTimerTask(timer), day*24*3600*1000);
logger.info("数据清除任务重启完成!");
}
}