我们新建好一个maven工程之后,到quartz的官网中找到想要的版本,此处用的是2.2.3,然后引入依赖 。
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>
然后新建两个类,一个HelloJob类实现Job接口中的execute方法,编写具体的业务逻辑。
还有一个HelloSchedule类,创建JobDetail实例,引入HelloJob类文件,然后创建trigger实例,定义job完成的方式(次数,时间等。)
HelloJob类:
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
//编写具体的业务逻辑
Date date=new Date();
SimpleDateFormat sf=new SimpleDateFormat("yy-mm-dd HH:mm:ss");
System.out.println("Current execu time is "+sf.format(date));
System.out.println("Hello world!");
}
}
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloSchedule {
public static void main(String[] args) throws SchedulerException{
//创建一个JobDetail实例,引入该实例
JobDetail jobDetail= JobBuilder.newJob(HelloJob.class)
.withIdentity("myJob","group1").build();
//创建一个Trigger实例,定义该job立即执行,每隔两秒钟重复执行一次
//这里我们把trigger和jobDetail定在同一组,其实不是同一组的
Trigger trigger= TriggerBuilder.newTrigger()
.withIdentity("myTrigger","group1")
.startNow()
.withSchedule(SimpleScheduleBuilder//SimpleScheduleBuilder是简单调用触发器,它只能指定触发的间隔时间和执行次数;
.simpleSchedule()//创建一个SimpleScheduleBuilder
.withIntervalInSeconds(20)//指定一个重复间隔,以秒为单位。
.withRepeatCount(10))//指定反复的次数
.build();//注意build是的主语是谁
//创建trigger实例