目录
触发分为 simpleTrigger和cronTrigger
实现简单的触发demo
simpleTrigger版
新建项目并导入jar包
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.6</version>
</dependency>
新建任务类
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
//任务类要实现job接口以及重写execute方法
public class jobDemo implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("这是任务类要做的任务");
}
}
新建触发类(这里任务调度类也写在一起了)
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.util.Date;
//触发类,触发方法
public class traggerDemo {
public static void main(String[] args) {
//要构造实例化 第一个是工作名称 第二个是任务组 第三个是任务类
JobDetail jobDetail=new JobDetail("工作名称","A",jobDemo.class);
//创建触发器 第一个参数是触发器的名称(myTrigger) 第二个参数是执行触发的间隔(无限触发) 第三个参数是间隔的时长(3秒)
SimpleTrigger simpleTrigger=new SimpleTrigger("myTrigger",SimpleTrigger.REPEAT_INDEFINITELY,3000);
//创建完触发器要设置触发器的开始时间 现在开始
simpleTrigger.setStartTime(new Date());
//开始实例化调度类的调度工厂
SchedulerFactory schedulerFactory=new StdSchedulerFactory();
try {
//获得调度核心
Scheduler scheduler=schedulerFactory.getScheduler();
//开始整合任务类和触发类 第一个参数是任务类 第二个参数是触发类
scheduler.scheduleJob(jobDetail,simpleTrigger);
//执行整合并开始任务
scheduler.start();
//休眠15秒后关闭
Thread.sleep(15000);
scheduler.shutdown();
} catch (Exception e) {
e.printStackTrace();
}
}
}