新增数据清理job,更新初始化sql脚本

This commit is contained in:
aoshiguchen
2022-09-17 22:09:14 +08:00
parent 258fe61c98
commit eeda818041
4 changed files with 87 additions and 1 deletions
@@ -0,0 +1,21 @@
package fun.asgc.neutrino.proxy.server.dal;
import fun.asgc.neutrino.core.annotation.Component;
import fun.asgc.neutrino.core.aop.Intercept;
import fun.asgc.neutrino.core.db.annotation.Delete;
import fun.asgc.neutrino.core.db.mapper.SqlMapper;
import java.util.Date;
/**
* @author: aoshiguchen
* @date: 2022/9/17
*/
@Intercept(ignoreGlobal = true)
@Component
public interface DataCleanMapper extends SqlMapper {
@Delete("delete from `job_log` where create_time < ?")
void cleanJobLog(Date date);
}
@@ -0,0 +1,61 @@
package fun.asgc.neutrino.proxy.server.job;
import com.alibaba.fastjson.JSONObject;
import fun.asgc.neutrino.core.annotation.Autowired;
import fun.asgc.neutrino.core.annotation.Component;
import fun.asgc.neutrino.core.annotation.NonIntercept;
import fun.asgc.neutrino.core.quartz.IJobHandler;
import fun.asgc.neutrino.core.quartz.annotation.JobHandler;
import fun.asgc.neutrino.core.util.DateUtil;
import fun.asgc.neutrino.proxy.server.dal.DataCleanMapper;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 日志清理Job
* @author: aoshiguchen
* @date: 2022/9/17
*/
@Slf4j
@NonIntercept
@Component
@JobHandler(name = "DataCleanJob", cron = "0 0 1 * * ?")
public class DataCleanJob implements IJobHandler {
@Autowired
private DataCleanMapper dataCleanMapper;
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* Job日志保存天数
*/
private static final Integer JOB_LOG_KEEP_DAYS = 7;
@Override
public void execute(String s) throws Exception {
JobParams jobParams = getParams(s);
Date date = DateUtil.addDate(new Date(), Calendar.DATE, jobParams.getJobLogKeepDays());
log.info("清理调度管理日志 date:{}", sdf.format(date));
dataCleanMapper.cleanJobLog(date);
}
public static JobParams getParams(String s) {
try {
return JSONObject.parseObject(s, JobParams.class);
} catch (Exception e) {
// ignore
}
return new JobParams()
.setJobLogKeepDays(JOB_LOG_KEEP_DAYS);
}
@Accessors(chain = true)
@Data
public static class JobParams {
private Integer jobLogKeepDays;
}
}
@@ -0,0 +1,5 @@
#job_qrtz_trigger_info
insert into job_info(`id`, `desc`, `handler`, `cron`, `param`, `enable`, `create_time`, `update_time`) values
(1, '示例Job', 'DemoJob', '0/10 * * * * ?', '{"a":101}', 1, STRFTIME('%s000', 'NOW'), STRFTIME('%s000', 'NOW'));
insert into job_info(`id`, `desc`, `handler`, `cron`, `param`, `enable`, `create_time`, `update_time`) values
(2, '数据清理任务', 'DataCleanJob', '0 0 1 * * ?', '', 1, STRFTIME('%s000', 'NOW'), STRFTIME('%s000', 'NOW'));
@@ -1 +0,0 @@
#job_qrtz_trigger_info