Triiger的定义:
通用的属性:
Jobkey:表示Job实例,触发器被触发时,该指定的Job实例会被执行。
StartTime:表示触发器的时间表示首次被触发的时间,值的类型是Java.util.Date类。
EndTime:指定触发器不在被触发的时间,值的类型是Java.util.Date类。
下面的代码演示:
在当前时间三秒之后开始执行,在当前时间六秒之后执行结束,并且获取开始执行的时间和结束执行的时间:
创建一个HelloJob2类继承Job代买如下:
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Trigger;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloJob02 implements Job{
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
String simpleDateFormat =new SimpleDateFormat("yyyy-mm-dd HH:mm:ss").format(new Date());
System.out.println("当前执行时间是:"+simpleDateFormat);
//获取startTime 和EndTime
System.out.println("结束执行时间:"+new SimpleDateFormat("yyyy-mm-dd HH:mm:ss").
format(jobExecutionContext.getTrigger().getEndTime()));
System.out.println("开始执行时间:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").
format(jobExecutionContext.getTrigger().getStartTime()));
//获取当前Trigger 的Name 和Group 以及当前Trigger的类
System.out.println("JobKey info-----"+"JobName:"+jobExecutionContext.getTrigger().getJobKey().getName()
+" JobClass: "+jobExecutionContext.getTrigger().getJobKey().getClass()+"JobGroup:"+jobExecutionContext.getTrigger().getJobKey().getGroup());
}
创建一个测试类:
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloScheduler02 {
public static void main(String[] args) throws Exception{
HelloScheduler02 helloScheduler02 = new HelloScheduler02();
helloScheduler02.test01();
}
/**
* 距离当前时间三秒之后开始执行 距离当前时间六秒之后停止执行
* @throws Exception
*/
public void test01()throws Exception{
//获取当前时间的
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 =new Date();
simpleDateFormat.format(date1);
date1.setTime(date1.getTime()+3000);//获取距离当前时间3面之后的时间
Date date2 = new Date();
date2.setTime(date1.getTime()+3000);
JobDetail jobDetail = JobBuilder.newJob(HelloJob02.class).withIdentity("myjob","goup1").build();
//设置当前时间三秒开始执行 设置当前时间六秒结束执行。
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("mytrigger","group").startAt(date1).endAt(date2).
withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()).build();
Scheduler scheduler1 = new StdSchedulerFactory().getScheduler();
scheduler1.start();
scheduler1.scheduleJob(jobDetail,trigger);
}
}