SimpleTrigger:在指定时间执行一次任务,或在指定时间执行多次任务。
重复次数可以是0,正整数,或者是SimpleTrigger.REPEAT_INDEFINITELY无限重复。
重复执行间隔必须为0或长整数
endTime覆盖重复次数
package com.huiandong;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.text.SimpleDateFormat;
import java.util.Date;
public class QTest {
public static void main(String[] args) throws SchedulerException {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(date);
//创建一个JobDetail示例,将该实例与HelloJobClass绑定
JobDetail jobD = JobBuilder.newJob(QuartzJob.class)
.withIdentity("quartz1")
.build();
date.setTime(date.getTime()+4000);
Date date2 = new Date();
date2.setTime(date2.getTime()+6000);
//创建一个Trigger实例,定义该job立即执行,每隔2s重复执行
//距离当前时间4s后执行且执行一次
SimpleTrigger trig = (SimpleTrigger)TriggerBuilder.newTrigger()
.withIdentity("Trigger", "group1")
.withSchedule
(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(2000)
// .withRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY))//永远执行
.withRepeatCount(3))//第一次执行后接着执行3次
.startAt(date)
.endAt(date2)//优先于执行次数
.build();
//创建scheduler实例
SchedulerFactory sf=new StdSchedulerFactory();
Scheduler sche = sf.getScheduler();
sche.start();
System.out.println(format);
sche.scheduleJob(jobD,trig);
}
}
package com.huiandong;
import org.quartz.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class QuartzJob implements Job{
public void execute(JobExecutionContext jec) throws JobExecutionException {
//打印当前的执行时间,格式为2017-01-01 00:00:00
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(date);
System.out.println(date);
System.out.println("hello world");
}
}