宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取
什么是Trigger?
Quartz中的触发器用来告诉调度程序作业什么时候触发。即Trigger对象是用来触发Job的
JobKey表示Job实例的标识,触发器被触发时,该指定的Job实例会执行。
StartTime 表示触发器的时间表首次被触发的时间。它的值的类型是Java.util.Date
EndTime 指定触发器的不再被触发的时间。它的值的类型是Java.util.Date
具体案例
import java.text.SimpleDateFormat; import java.util.Date; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.SimpleScheduleBuilder; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; public class HelloScheduler { public static void main(String[] args) throws SchedulerException { //打印当前的执行时间 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentTime = sdf.format(date); System.out.println("Current Time : "+currentTime); //获取当前时间3秒后的时间 date.setTime(date.getTime()+3000); //获取距离当前时间6秒后的时间 Date endDate = new Date(); endDate.setTime(endDate.getTime()+6000); //创建一个JobDetail实例,将该实例与HelloJob class绑定 JobDetail jobDetail = JobBuilder.newJob(HelloJob.class) .withIdentity("myJob", "group1") .build(); //创建一个Trigger实例,定义该Job立即执行,并且每隔2秒钟重复执行一次,直到永远 Trigger trigger = TriggerBuilder.newTrigger() .withIdentity("myTrigger", "group1") .startAt(date) .endAt(endDate) .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()) .build(); //创建Scheduler实例 SchedulerFactory sfact = new StdSchedulerFactory(); Scheduler scheduler = sfact.getScheduler(); scheduler.start(); scheduler.scheduleJob(jobDetail, trigger); } }
import java.text.SimpleDateFormat; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.quartz.JobKey; import org.quartz.Trigger; public class HelloJob implements Job{ public void execute(JobExecutionContext context) throws JobExecutionException { //打印当前的执行时间 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentTime = sdf.format(date); System.out.println("Current Exec Time : "+currentTime); //编写具体的业务逻辑 Trigger currentTrigger = context.getTrigger(); System.out.println("Start Time is:"+sdf.format(currentTrigger.getStartTime())); System.out.println("End Time is:"+sdf.format(currentTrigger.getEndTime())); JobKey jobKey = currentTrigger.getJobKey(); System.out.println("JobKey info --" +jobKey.getName()+": "+jobKey.getGroup()+": "+jobKey.getClass()); } }
最新评论