[新增][定时任务]重新申请 ApiAccessLog、ApiErrorLog、JobLog 3个日志的定时清理

This commit is contained in:
j-sentinel
2023-10-02 19:18:36 +08:00
parent fdb10aeced
commit 2f0483ce9f
32 changed files with 238 additions and 369 deletions

View File

@ -1,12 +1,9 @@
package cn.iocoder.yudao.framework.quartz.config;
import cn.iocoder.yudao.framework.quartz.core.job.JobLogJobHandler;
import cn.iocoder.yudao.framework.quartz.core.job.LogJobProperties;
import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Scheduler;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableScheduling;
@ -18,7 +15,6 @@ import java.util.Optional;
@AutoConfiguration
@EnableScheduling // 开启 Spring 自带的定时任务
@Slf4j
@EnableConfigurationProperties(LogJobProperties.class)
public class YudaoQuartzAutoConfiguration {
@Bean
@ -30,10 +26,4 @@ public class YudaoQuartzAutoConfiguration {
return new SchedulerManager(scheduler.get());
}
// TODO @j-sentinel这个 job先拿到 infra biz 里面实现哈;
@Bean
public JobLogJobHandler jobLogJobHandler(LogJobProperties logJobProperties){
return new JobLogJobHandler(logJobProperties);
}
}

View File

@ -1,35 +0,0 @@
package cn.iocoder.yudao.framework.quartz.core.job;
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
import cn.iocoder.yudao.framework.quartz.core.service.JobLogFrameworkService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
// TODO @j-sentinel名字和项目里其它保持统一可以叫 JobLogCleanJob不用带 handler 哈
/**
* // TODO @j-sentinel要写下类注释噢就是这个类要干啥然后下面两个应该是 @author 和 @since
* @Author: j-sentinel
* @Date: 2023/9/30 20:40
*/
@Slf4j
@AllArgsConstructor
public class JobLogJobHandler implements JobHandler {
private LogJobProperties logJobProperties;
public JobLogJobHandler(LogJobProperties logJobProperties) {
this.logJobProperties = logJobProperties;
}
@Resource
private JobLogFrameworkService jobLogFrameworkService;
@Override
public String execute(String param) throws Exception {
Integer integer = jobLogFrameworkService.timingJobCleanLog(logJobProperties.getJobCleanRetainDay());
log.info("定时执行清理定时任务日志数量({})个",integer);
return String.format("定时执行清理定时任务日志数量 %s 个", integer);
}
}

View File

@ -1,21 +0,0 @@
package cn.iocoder.yudao.framework.quartz.core.job;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
// TODO @j-sentinel这个配置类先暂时不做每个 Job 里面定一个静态类。其实不是所有的变量,都需要配置化,因为它本身基本也不会改动。
/**
* @Author: j-sentinel
* @Date: 2023/9/30 16:17
*/
@Data
@ConfigurationProperties(prefix = "yudao.clean-job")
public class LogJobProperties {
private int accessRetainDay = 7;
private int errorRetainDay = 8;
private int jobCleanRetainDay = 7;
}

View File

@ -40,11 +40,4 @@ public interface JobLogFrameworkService {
@NotNull(message = "结束时间不能为空") LocalDateTime endTime,
@NotNull(message = "运行时长不能为空") Integer duration,
boolean success, String result);
/**
* 清理 @param jobCleanRetainDay 天的访问日志
*
* @param jobCleanRetainDay 超过多少天就进行清理
*/
Integer timingJobCleanLog(Integer jobCleanRetainDay);
}