quartz调度实例

来源:互联网 发布:python 获取字典的值 编辑:程序博客网 时间:2024/06/05 04:00
import java.text.SimpleDateFormat;import java.util.Date;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class MyJob implements Job{@Overridepublic void execute(JobExecutionContext arg0) throws JobExecutionException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");      System.out.println(sdf.format(new Date())); }}
import java.text.SimpleDateFormat;import java.util.Date;import static org.quartz.JobBuilder.newJob; import static org.quartz.TriggerBuilder.newTrigger; import org.quartz.CronTrigger;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerFactory;import org.quartz.impl.StdSchedulerFactory;import static org.quartz.CronScheduleBuilder.cronSchedule;public class Test {public void go() throws Exception {// 获取一个Scheduler的实例SchedulerFactory factory = new StdSchedulerFactory();Scheduler scheduler = factory.getScheduler();// jobs可以在scheduled的sched.start()方法前被调用// job 1将每隔20秒执行一次JobDetail job = newJob(MyJob.class).withIdentity("job1", "group1").build();CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/5 * * * * ?")).build();Date ft = scheduler.scheduleJob(job, trigger);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft)+ ",并且以如下重复规则重复执行: " + trigger.getCronExpression());// job 2将每2分钟执行一次(在该分钟的第15秒) 格式: [秒] [分] [小时] [日] [月] [周] [年]job = newJob(MyJob.class).withIdentity("job2", "group1").build();trigger = newTrigger().withIdentity("trigger2", "group1").withSchedule(cronSchedule("15 0/2 * * * ?")).build();ft = scheduler.scheduleJob(job, trigger);System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft)+ ",并且以如下重复规则重复执行: " + trigger.getCronExpression());// 开始执行,start()方法被调用后,计时器就开始工作,计时调度中允许放入N个Jobscheduler.start();try {// 主线程等待一分钟Thread.sleep(10L * 1000L);} catch (Exception e) {}// 关闭定时调度,定时器不再工作scheduler.shutdown(true);}public static void main(String[] args) throws Exception {Test test = new Test();test.go();}}

结果展示:

group1.job1 已被安排执行于: 2017-06-26 14:50:15 000,并且以如下重复规则重复执行: 0/5 * * * * ?
group1.job2 已被安排执行于: 2017-06-26 14:50:15 000,并且以如下重复规则重复执行: 15 0/2 * * * ?
2017-06-26 14:50:15 023
2017-06-26 14:50:15 023
2017-06-26 14:50:20 010


原创粉丝点击