Quartz:
#### 实现任务调度:定时器,支持分布式
核心:
1、作业 Job
循环执行的事情
2、触发器 Trigger
满足什么样的条件:间隔时间 固定时间
3、调度器 Scheulder
监听触发器是否满足,如果满足就执行Job
使用步骤
1、导入jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
2、定义作业
创建类 实现接口Job
重写方法:想做的事情
public class MyyJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("重要的事情说三遍");
}
}
3、编写代码-main
定义触发器:明确什么时间做什么事情
public class Quartz_Main {
public static void main(String[] args) {
/**
* 1、定义触发器 3秒执行一次 建造者模式
* .repeatForever:加上此方法:程序不死,就一直执行
*/
TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.simpleSchedule().
withIntervalInSeconds(3).repeatForever()).build();
}
}
使用步骤:
编写代码-main
1、定义触发器
明确什么时候
2、创建作业详情
JobDetail
3、创建调度器
Scheduler
StdSchedulerFactory
4、设置 定时作业 将作业和触发器绑定
scheduleJob
5、启动调度器
start
scheduler.start(); 启动
scheduler.shutdown(); 关闭
scheduler.pauseJob(); 暂停
scheduler.resumeJob(); 恢复
public class Quartz_Main {
public static void main(String[] args) throws SchedulerException {
/**
* 1、定义触发器 3秒执行一次 建造者模式
* .repeatForever:加上此方法:程序不死,就一直执行
*/
Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.simpleSchedule().
withIntervalInSeconds(3).repeatForever()).build();
/**
* 2、创建作业详情MyyJob
*/
JobDetail jobDetail = JobBuilder.newJob(MyyJob.class).build();
/**
* 3、创建调度器 (抛出 SchedulerException 异常)
*/
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
/**
* 4、设置 定时作业
* jobDetail:第一个参数为作业详情对象
* trigger:第二个参数是触发器对象
*/
scheduler.scheduleJob(jobDetail,trigger);
//5、启动调度器
scheduler.start();
}
}
在下面可以看到效果