增加监测数据定时清除功能

This commit is contained in:
wangwenrui
2018-12-24 15:04:22 +08:00
parent 788b321414
commit 57acc77c3f
3 changed files with 41 additions and 7 deletions

View File

@@ -1,7 +1,7 @@
#数据库连接
#jdbcUrl = jdbc:sqlite:/home/wwr/oam2.db
#jdbcUrl = jdbc:sqlite:D:\\Workspaces\\wwrWork\\gloam\\db\\oam.db
jdbcUrl = jdbc:sqlite:C:/Users/ThinkPad/git/oam/gloam/db/oam.db
jdbcUrl = jdbc:sqlite:C:/Users/Administrator/Desktop/oam.db
#jdbcUrl = jdbc:sqlite://10.0.6.103/sqlite/oam.db
devMode = true
@@ -48,4 +48,7 @@ device_config_scriptCmd=device_config
#进程更新文件上传目录
process_upload_path=/home/wwr/gloam/upload
ipinfo.config.path=C:\\Users\\ThinkPad\\git\\oam\\gloam\\collector\\config
ipinfo.config.path=C:\\Users\\ThinkPad\\git\\oam\\gloam\\collector\\config
#监测表定时清理配置
detect_info_clear=_nmsc,_cpu,_disk,_memory,_netdata,_ping,_port,_process,_system_date,detection_info

View File

@@ -48,11 +48,13 @@ import com.nis.gloam.interceptor.LoginInterceptor;
import com.nis.gloam.interceptor.OperateLogInterceptor;
import com.nis.gloam.service.NodeTableService;
import com.nis.gloam.task.DetectDataFileReadTask;
import com.nis.gloam.task.LogTimerTask;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import java.util.Timer;
@@ -208,5 +210,8 @@ public class BaseConfig extends JFinalConfig{
Timer timer = new Timer();
timer.schedule(new DetectDataFileReadTask(timer), 2000);
logger.info("文件定时读取任务启动");
Timer clearTableTimer=new Timer();
clearTableTimer.schedule(new LogTimerTask(clearTableTimer), new Date());
logger.info("监测数据定时清理任务启动");
}
}

View File

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