Quartz框架是一个开源的作业调度(Job Scheduling)框架。它可以在指定的时间触发特定的任务,并按照预定的时间间隔执行任务。简单来说,Quartz框架就是用来在指定时间执行任务的工具。
Github : https://github.com/quartz-scheduler/quartz/tree/main
官网:https://www.quartz-scheduler.org/
在线Cron工具:https://cron.qqe2.com/
Cron语法规则:https://blog.csdn.net/qq_42776455/article/details/109765552
Quartz框架有四个组成部分
工作流程:先定义JobDetail类和Trigger触发器,再通过Scheduler 调度器启动任务。
springboot 框架引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
首先,我们需要创建一个 Job 类来定义我们需要执行的任务,代码如下:
public class MyJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
// 定义需要执行的任务,此处省略具体代码
System.out.println("任务执行");
}
}
接着,我们需要定义一个 Trigger,来触发该 Job 任务。代码如下:
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.startAt(DateBuilder.eightPMToday())
.withSchedule(cronSchedule("0 0 1 * * ?"))
.forJob("job1", "group1")
.build();
最后,我们通过 Scheduler 来启动任务。代码如下:
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schedFact.getScheduler();
sched.start();
sched.scheduleJob(job, trigger);
通过以上代码的组合,我们就可以实现在每天凌晨 1 点整执行指定任务的功能了。