Quartz工作原理:
任务:需要执行的具体工作任务:
触发器:在特定的时间触发任务的执行
调度器:任务的实际执行者,负责粘合任务和触发器
创建步骤:
1.创建新的Maven项目,名字自取。
2.创建完成后,在项目的pom.xml的依赖中加入以下依赖
Quartz的依赖
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.6</version>
</dependency>
3.在java包内创建一个类实现Job,在里面写上要执行的内容。
package cn.ycyy.quartz;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* @author Krystal
* @create 2018-09-05 下午5:19
*/
public class RemindJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("Lucky Day~~");
}
}
4-1.然后创建一个调用job的类(只有SimpleTrigger)
package cn.ycyy.quartz;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.util.Date;
/**
* @author Krystal
* @create 2018-09-05 下午5:21
*/
public class TestMain {
public static void main(String[] args) throws SchedulerException, InterruptedException {
//1.创建任务job
JobDetail jobDetail=new JobDetail("myjob","A",RemindJob.class);
//2.创建触发器 trigger
SimpleTrigger trigger=new SimpleTrigger("myTrigger",SimpleTrigger.REPEAT_INDEFINITELY,3000);
//指定第一次执行任务的时间
trigger.setStartTime(new Date(System.currentTimeMillis()+1000));
//3.创建调度器
//创建Scheduler工厂SchedulerFactory的实例
SchedulerFactory factory=new StdSchedulerFactory();
//获取调度器
Scheduler scheduler=factory.getScheduler();
//粘合任务和调度器
scheduler.scheduleJob(jobDetail,trigger);
//开始执行
scheduler.start();
//设置睡眠时间,时间到后关闭调度器
Thread.sleep(20000);
System.out.println("20秒到啦!我要关闭啦!");
//关闭
scheduler.shutdown();
}
}
4-2.然后创建一个调用job的类(SimpleTrigger+CronTrigger)
package cn.ycyy.quartz;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.text.ParseException;
import java.util.Date;
/**
* @author Krystal
* @create 2018-09-05 下午5:21
*/
public class TestMain {
public static void main(String[] args) throws SchedulerException, InterruptedException, ParseException {
//1.创建任务job
JobDetail jobDetail=new JobDetail("myjob","A",RemindJob.class);
//2.创建触发器 trigger
SimpleTrigger trigger=new SimpleTrigger("myTrigger",SimpleTrigger.REPEAT_INDEFINITELY,3000);
CronTrigger cronTrigger=new CronTrigger("myCronTrigger","B","0 10 19 ? * *");//0 10 19 ? * *意思是在每天的19点10分执行cronTrigger
//指定第一次执行任务的时间
trigger.setStartTime(new Date(System.currentTimeMillis()+1000));
//3.创建调度器
//创建Scheduler工厂SchedulerFactory的实例
SchedulerFactory factory=new StdSchedulerFactory();
//获取调度器
Scheduler scheduler=factory.getScheduler();
//粘合任务和调度器
scheduler.scheduleJob(jobDetail,cronTrigger);
//开始执行
scheduler.start();
Thread.sleep(200000);
System.out.println("20秒到啦!我要关闭啦!");
//关闭
scheduler.shutdown();
}
}
以上就是简单的任务调度实现~