# diboot-scheduler 使用说明

# 1、引入依赖

Maven

<dependency>
    <groupId>com.diboot</groupId>
    <artifactId>diboot-scheduler-spring-boot-starter</artifactId>
    <version>{latestVersion}</version>
</dependency>
1
2
3
4
5

或Gradle:

compile("com.diboot:diboot-scheduler-spring-boot-starter:{latestVersion}")
1

组件依赖的数据表schedule_job、schedule_job_log,在组件starter初次启动时将自动初始化。

如果使用diboot-devtools,还可一键生成该组件相关的controller等基础代码到本地项目下。

# 2、参数配置:

diboot-scheduler组件有以下配置项,用于初始化设置 配置参数:

# 是否初始化sql,默认true,初始化之后(或非开发环境)可以关闭
diboot.component.scheduler.init-sql=false

# 其他spring quertz starter相关的参数按spring的文档配置
# spring.quartz.xxx
1
2
3
4
5

# 3. 使用说明

# 3.1 新增定时任务

  • 定义你的定时任务Job类,继承quartz的QuartzJobBean
  • 添加@CollectThisJob注解,声明Job名称、参数、以及默认的定时cron,以便组件自动收集Job信息供前端选择。
@DisallowConcurrentExecution
@CollectThisJob(name = "我的定时任务", paramJson = "{\"daysBefore\":30}", cron = "* * 1 * * ?")
public class MyJob extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        // 获取参数
        JobDataMap jobDataMap = jobExecutionContext.getJobDetail().getJobDataMap();
        int days = 30;
        if(jobDataMap.containsKey("daysBefore")){
            days = jobDataMap.getInt("daysBefore");
        }
        //TODO 执行定时任务
    }

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  • 前端"定时任务管理"功能中,配置该定时任务调度作业。

使用过程中遇到问题,可加群交流。