//用到的lib quartz-all-1.8.6.jar slf4j-log4j12-1.6.0.jar commons-logging-1.1.1.jar
public class SimpleJob implements Job{ @Override public void execute(JobExecutionContext jobCtx) throws JobExecutionException { System.out.println(jobCtx.getTrigger().getName()+" triggered.time is: "+(new Date())); } }
public class SimpleTriggerRunner { public static void main(String[] args) { try{ //创建一个JobDetail实列 指定SimpleJob JobDetail jobDetail=new JobDetail("jbo1-1","jgroup1", SimpleJob.class); //通过SimpleTrigger定义调度规则:马上启动,每2秒运行一次,共运行100次 SimpleTrigger simpleTrigger=new SimpleTrigger("trigger1-1", "tgroup1"); simpleTrigger.setStartTime(new Date()); simpleTrigger.setRepeatInterval(2000); simpleTrigger.setRepeatCount(100); //通过SchedulerFactory获取一个调度器实例 SchedulerFactory schedulerFactory=new StdSchedulerFactory(); Scheduler scheduler=schedulerFactory.getScheduler(); //注册并进行调度 scheduler.scheduleJob(jobDetail, simpleTrigger); scheduler.start(); }catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
public class CronTriggerRunner { public static void main(String[] args) { try{ JobDetail jobDetail=new JobDetail("job1_2", "jGroup1", SimpleJob.class); CronTrigger cronTrigger=new CronTrigger("trigger1-2","tgroup1"); //***************Cron表达式********************* // * 位置 时间域名 允许值 允许的特殊字符 // * 1 秒 0-59 ,-*/ // * 2 分钟 0-59 ,-*/ // * 3 小时 0-23 ,-*/ // * 4 日期 1-31 ,-*?/ L W C // * 5 月份 1-12 ,-*/ // * 6 星期 1-7 ,-*?/ L C # // * 7 年(可选) 空值1970-2099 ,-*/ //***************Cron表达式符号意义********************* /* 星号(*) 可用在所有字段中,表示对应时间域的每一个时刻 * 问号(?) 该字符只在日期和星期字段中使用,它通常指定为无意义的值,相当于占位符 * 减号(-) 表示一个范围 * 逗号(,) 表示一个列表值,比如在日期字段中使用1,4,5 则表示星期一,星期四,星期五 * 斜杠(/) x/y x为起始值,y为增长值 * L 在日期中表示这个月的最后一天 在星期中表示星期六 * W 表示离该日期最近的工作日 注意:不能够跨月 如指定1W,如果1号是星期六,结果匹配的是3号的星期一 * LW 当月的最后一个工作日 * 井号(#) 表示当月的某个工作日 如 6#3表示当月的第3个星期5 * C 计划所关联的日期,如果没有被关联,相当于所有日期 * 5C在日期中相当于5日以后的第一天 * 1C相当于星期日后的第一天 */ CronExpression cexp=new CronExpression("0 07 14 2 12 ? 2013"); cronTrigger.setCronExpression(cexp); SchedulerFactory schedulerFactory=new StdSchedulerFactory(); Scheduler scheduler=schedulerFactory.getScheduler(); scheduler.scheduleJob(jobDetail,cronTrigger); //第一次启动任务的时候要开启容器 scheduler.start(); //删除任务 scheduler.deleteJob("job1_2", "jGroup1"); //删除任务 scheduler.deleteJob("job1_2", "jGroup1"); //暂停所有任务 scheduler.pauseAll() //恢复所有任务 scheduler.resumeAll() //动态添加任务,到点就会执行 scheduler.scheduleJob(jobDetail, cronTrigger); }catch (Exception e) { e.printStackTrace(); } } }
quartz使用教程
最新推荐文章于 2022-02-28 19:48:41 发布