From 726dd399bcec9f1408445bd0e0cd3a2eae97f30d Mon Sep 17 00:00:00 2001 From: luozhiwei Date: Tue, 13 Sep 2022 16:04:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=87=AA=E5=8A=A8=E6=B8=85?= =?UTF-8?q?=E7=90=86=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oldwu/task/CleanUpLogsRegularlyTask.java | 74 +++++++++++++++++++ src/main/java/com/oldwu/util/DateUtils.java | 2 + 2 files changed, 76 insertions(+) create mode 100644 src/main/java/com/oldwu/task/CleanUpLogsRegularlyTask.java diff --git a/src/main/java/com/oldwu/task/CleanUpLogsRegularlyTask.java b/src/main/java/com/oldwu/task/CleanUpLogsRegularlyTask.java new file mode 100644 index 00000000..a73276b6 --- /dev/null +++ b/src/main/java/com/oldwu/task/CleanUpLogsRegularlyTask.java @@ -0,0 +1,74 @@ +package com.oldwu.task; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.oldwu.dao.AutoLogDao; +import com.oldwu.dao.SysQuartzJobLogMapper; +import com.oldwu.domain.SysQuartzJobLog; +import com.oldwu.entity.AutoLog; +import com.oldwu.util.DateUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; + +import java.util.Calendar; +import java.util.Date; + +/** + * 自动清理日志 + * + * @author MoWei + * @CreateDate 2022/9/13 16:00 + */ +@Slf4j +@Configuration("cleanUpLogsRegularly") +@EnableScheduling +public class CleanUpLogsRegularlyTask { + + private static AutoLogDao logDao; + + private static SysQuartzJobLogMapper sysQuartzJobLogMapper; + + @Autowired + public void getLogDao(AutoLogDao logDao) { + CleanUpLogsRegularlyTask.logDao = logDao; + } + + @Autowired + public void getSysQuartzJobLogMapper(SysQuartzJobLogMapper sysQuartzJobLogMapper) { + CleanUpLogsRegularlyTask.sysQuartzJobLogMapper = sysQuartzJobLogMapper; + } + + /** + * auto_log表 + * 每个月1号清理上个月的日志 + */ + @Scheduled(cron = "0 0 0 1 * ?") + public void cleanUpAutoLog() { + System.out.println("定时任务1"); + Calendar calendar = Calendar.getInstance(); + //当前时间减去一个月,即一个月前的时间 + calendar.add(Calendar.MONTH, -1); + Date time = calendar.getTime(); + String previousMonth = DateUtils.format(time) + DateUtils.ADD_H_LAST; + int delete = logDao.delete(Wrappers.lambdaQuery().le(AutoLog::getDate, previousMonth)); + log.info("auto_log任务日志表清理成功,总共清理了{}条日志", delete); + } + + /** + * t_sys_quartz_job_log表 + * 每个月1号清理上个月的日志 + */ + @Scheduled(cron = "0 0 0 1 * ?") + public void cleanUpScheduledTaskLogs() { + System.out.println("定时任务2"); + Calendar calendar = Calendar.getInstance(); + //当前时间减去一个月,即一个月前的时间 + calendar.add(Calendar.MONTH, -1); + Date time = calendar.getTime(); + String previousMonth = DateUtils.format(time) + DateUtils.ADD_H_LAST; + int delete = sysQuartzJobLogMapper.delete(Wrappers.lambdaQuery().le(SysQuartzJobLog::getStartTime, previousMonth)); + log.info("t_sys_quartz_job_log定时任务日志表清理成功,总共清理了{}条日志", delete); + } +} diff --git a/src/main/java/com/oldwu/util/DateUtils.java b/src/main/java/com/oldwu/util/DateUtils.java index b086b5dc..03987f4b 100644 --- a/src/main/java/com/oldwu/util/DateUtils.java +++ b/src/main/java/com/oldwu/util/DateUtils.java @@ -21,6 +21,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{ /** 时间格式(yyyy-MM-dd HH:mm:ss) */ public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; + public final static String ADD_H_LAST = " 00:00:00"; + public static String format(Date date) { return format(date, DATE_PATTERN); }