标签:withIdentity ft 调度 cron quartz2.3 job trigger group1 build
cron详解参见:https://www.cnblogs.com/yaowen/p/3779284.html
cron总结
任务类
1 /** 2 * 任务job 3 */ 4 public class SimpleJob implements Job { 5 6 private static Logger LOG = LoggerFactory.getLogger(SimpleJob.class); 7 8 // 必须要有public修饰的无参构造函数 9 public SimpleJob() { 10 } 11 12 // 任务执行方法 13 public void execute(JobExecutionContext context) throws JobExecutionException { 14 JobKey jobKey = context.getJobDetail().getKey(); //jobKey长这样:group1.job6 15 LOG.info("执行任务。SimpleJob says: " + jobKey + " executing at " + new Date()); 16 } 17 18 }
调度管理类
1 package org.quartz.examples.example3; 2 3 import static org.quartz.CronScheduleBuilder.cronSchedule; 4 import static org.quartz.JobBuilder.newJob; 5 import static org.quartz.TriggerBuilder.newTrigger; 6 7 import org.quartz.CronTrigger; 8 import org.quartz.JobDetail; 9 import org.quartz.Scheduler; 10 import org.quartz.SchedulerFactory; 11 import org.quartz.SchedulerMetaData; 12 import org.quartz.impl.StdSchedulerFactory; 13 import org.slf4j.Logger; 14 import org.slf4j.LoggerFactory; 15 16 import java.util.Date; 17 18 /** 19 * 这个示例将演示使用Cron触发器的Quartz的所有基本调度功能。 20 * 21 */ 22 public class CronTriggerExample { 23 Logger LOG = LoggerFactory.getLogger(CronTriggerExample.class); 24 25 /* 26 * 以下用到的cron总结: "0/20 * * * * ?" 每20秒执行一次 27 */ 28 public void run() throws Exception { 29 // 初始化一个调度工厂,并实例化一个调度类 30 SchedulerFactory sf = new StdSchedulerFactory(); 31 Scheduler sched = sf.getScheduler(); 32 33 JobDetail job = null; 34 CronTrigger trigger = null; 35 Date ft = null; 36 37 // ======================================================== 38 // ============ job1 每20秒执行一次,无限期重复 39 // ======================================================== 40 job = newJob(SimpleJob.class).withIdentity("job1", "group1").build(); 41 trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/20 * * * * ?")).build(); 42 ft = sched.scheduleJob(job, trigger); 43 LOG.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " 44 + trigger.getCronExpression()); 45 46 // ======================================================== 47 // ============ job2 将每隔2分钟运行一次(每分钟过后15秒) 48 // ======================================================== 49 job = newJob(SimpleJob.class).withIdentity("job2", "group1").build(); 50 trigger = newTrigger().withIdentity("trigger2", "group1").withSchedule(cronSchedule("15 0/2 * * * ?")).build(); 51 ft = sched.scheduleJob(job, trigger); 52 LOG.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " 53 + trigger.getCronExpression()); 54 55 // ======================================================== 56 // ============ job3 将每隔一分钟运行一次,但只在上午8点到下午5点之间才运行 57 // ======================================================== 58 job = newJob(SimpleJob.class).withIdentity("job3", "group1").build(); 59 trigger = newTrigger().withIdentity("trigger3", "group1").withSchedule(cronSchedule("0 0/1 8-17 * * ?")) 60 .build(); 61 ft = sched.scheduleJob(job, trigger); 62 LOG.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " 63 + trigger.getCronExpression()); 64 65 // ======================================================== 66 // ============ job4 每三分钟运行一次,但只在下午5点到11点之间运行 67 // ======================================================== 68 job = newJob(SimpleJob.class).withIdentity("job4", "group1").build(); 69 trigger = newTrigger().withIdentity("trigger4", "group1").withSchedule(cronSchedule("0 0/3 17-23 * * ?")) 70 .build(); 71 ft = sched.scheduleJob(job, trigger); 72 LOG.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " 73 + trigger.getCronExpression()); 74 75 // ======================================================== 76 // ============ job5将在每月的第1天和第15天上午10点运行 77 // ======================================================== 78 job = newJob(SimpleJob.class).withIdentity("job5", "group1").build(); 79 trigger = newTrigger().withIdentity("trigger5", "group1").withSchedule(cronSchedule("0 0 10am 1,15 * ?")) 80 .build(); 81 ft = sched.scheduleJob(job, trigger); 82 LOG.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " 83 + trigger.getCronExpression()); 84 85 // ======================================================== 86 // ============ job6 将每30秒运行一次,但仅限于工作日(周一至周五) 87 // ======================================================== 88 // job 6 will run every 30 seconds but only on Weekdays (Monday through Friday) 89 job = newJob(SimpleJob.class).withIdentity("job6", "group1").build(); 90 trigger = newTrigger().withIdentity("trigger6", "group1").withSchedule(cronSchedule("0,30 * * ? * MON-FRI")) 91 .build(); 92 ft = sched.scheduleJob(job, trigger); 93 LOG.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " 94 + trigger.getCronExpression()); 95 96 // ======================================================== 97 // ============ job7 每30秒运行一次,但只在周末(周六和周日) 98 // ======================================================== 99 job = newJob(SimpleJob.class).withIdentity("job7", "group1").build(); 100 trigger = newTrigger().withIdentity("trigger7", "group1").withSchedule(cronSchedule("0,30 * * ? * SAT,SUN")) 101 .build(); 102 ft = sched.scheduleJob(job, trigger); 103 LOG.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " 104 + trigger.getCronExpression()); 105 106 // ==================================================================== 107 // ============ 启动调度器 108 // ==================================================================== 109 sched.start(); 110 111 try { 112 Thread.sleep(300L * 1000L); // 等待5分钟 113 } catch (Exception e) { 114 } 115 // 停止调度器 116 sched.shutdown(true); 117 // 显示调度器的一些统计信息 118 SchedulerMetaData metaData = sched.getMetaData(); 119 LOG.info("Executed " + metaData.getNumberOfJobsExecuted() + " jobs."); 120 } 121 122 public static void main(String[] args) throws Exception { 123 CronTriggerExample example = new CronTriggerExample(); 124 example.run(); 125 } 126 127 }
标签:withIdentity,ft,调度,cron,quartz2.3,job,trigger,group1,build 来源: https://www.cnblogs.com/zhuwenjoyce/p/11074747.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。