`
yimeng528
  • 浏览: 182928 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Quartz之CronTrigger

阅读更多

参考资料 
1 quartz 学习笔记 
http://chinaxxren.iteye.com/blog/897989 
任务和触发器是quartz的两大块核心。触发器分CronTrigger 和SimpleTrigger 
CronTrigger 支持比 SimpleTrigger 更具体的调度,而且也不是很复杂。基于 cron 表达式,CronTrigger 支持类似日历的重复间隔,而不是单一的时间间隔 —— 这相对 SimpleTrigger 而言是一大改进。掌握CronTrigger,是非常必要,掌握Quartz cron 表达式是学习CronTrigger的关键所在!
 
环境: XP+Myeclipse6.5+JDK1.6+Quartz2 
一 具体代码 
1 SimpleJob.java 

Java代码   收藏代码
  1. package org.quartz.examples.example3;  
  2.   
  3. import java.text.SimpleDateFormat;  
  4. import java.util.Date;  
  5.   
  6. import org.quartz.Job;  
  7. import org.quartz.JobExecutionContext;  
  8. import org.quartz.JobExecutionException;  
  9. import org.quartz.JobKey;  
  10. import org.quartz.Scheduler;  
  11. import org.quartz.SchedulerException;  
  12. import org.quartz.TriggerKey;  
  13. import org.slf4j.Logger;  
  14. import org.slf4j.LoggerFactory;  
  15.   
  16. public class SimpleJob implements Job {  
  17.       
  18.     private static int jobCount = 0;  
  19.   
  20.     private static Logger _log = LoggerFactory.getLogger(SimpleJob.class);  
  21.       
  22.     private Scheduler sched = null;  
  23.      
  24.     public SimpleJob() throws SchedulerException {  
  25.         sched = SchedFacory.getScheduler();  
  26.     }  
  27.      
  28.     public void execute(JobExecutionContext context)  
  29.         throws JobExecutionException {  
  30.           
  31.         JobKey jobKey = context.getJobDetail().getKey();  
  32.         TriggerKey triggerKey = context.getTrigger().getKey();         
  33.           
  34.         //启动线程监听触发器的状态  
  35.         new Thread(new SchedEventLister(triggerKey)).start();     
  36.           
  37.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
  38.         _log.info("任务分组名称: " + jobKey.getGroup()+",任务名称: " + jobKey.getName()+",触发器组名称: " + triggerKey.getGroup()+ ",触发器名称: "+triggerKey.getName()+" 执行时间: " + sdf.format(new Date()) + ",计数: " + (++jobCount)) ;  
  39.                  
  40.         //如果任务执行超过20次就结束它  
  41.       /*  if(jobCount > 5){ 
  42.             _log.warn("结束任务..."); 
  43.             try { 
  44.                 //Delete the identified Job from the Scheduler - and any associated Triggers. 
  45.                 //从调度器中删除这个唯一任务时同时会删除相关联的触发器^_^ 
  46.                 sched.deleteJob(jobKey);                 
  47.                 sched.resumeJob(jobKey); 
  48.                  
  49.             } catch (SchedulerException e) { 
  50.                 e.printStackTrace(); 
  51.             } 
  52.         }*/  
  53.        if(jobCount == 15 ){  
  54.             _log.warn("已经暂停了触发器...,触发器组名: " + triggerKey.getGroup()  + ",触发器名称: " + triggerKey.getName());  
  55.             //暂停触发器           
  56.             try {    
  57.                 sched.pauseTrigger(triggerKey);    
  58.             } catch (SchedulerException e) {    
  59.                 throw new RuntimeException(e);    
  60.             }    
  61.              
  62.         }           
  63.          
  64.           
  65.         if(jobCount == 20){  
  66.             _log.error("正在停止并且移除触发器...,触发器组名: " + triggerKey.getGroup()  + ",触发器名称: " + triggerKey.getName());  
  67.             try {    
  68.                 sched.resumeTrigger(triggerKey);//停止触发器  
  69.                 sched.unscheduleJob(triggerKey);//移除触发器    
  70.             } catch (SchedulerException e) {    
  71.                 throw new RuntimeException(e);    
  72.             }               
  73.         }  
  74.          
  75.     }  
  76. }  



2 CronTriggerExample.java 

Java代码   收藏代码
  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 java.text.SimpleDateFormat;  
  8. import java.util.Date;  
  9.   
  10. import org.quartz.CronTrigger;  
  11. import org.quartz.JobDetail;  
  12. import org.quartz.Scheduler;  
  13. import org.quartz.SchedulerMetaData;  
  14. import org.slf4j.Logger;  
  15. import org.slf4j.LoggerFactory;  
  16.   
  17.   
  18. public class CronTriggerExample {  
  19.   
  20.     public void run() throws Exception {  
  21.           
  22.         Logger log = LoggerFactory.getLogger(CronTriggerExample.class);  
  23.         
  24.         //SchedulerFactory sf = new StdSchedulerFactory();  
  25.         Scheduler sched = SchedFacory.getScheduler();// sf.getScheduler();      
  26.       
  27.           
  28.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
  29.         CronTrigger trigger = null;  
  30.         JobDetail job = null;  
  31.         Date ft = null;  
  32.           
  33.        /* job = newJob(SimpleJob.class) 
  34.             .withIdentity("job1", "group1") 
  35.             .build();       
  36.          
  37.         //表示每20秒执行一次 
  38.         trigger = newTrigger() 
  39.             .withIdentity("trigger1", "group1") 
  40.             .withSchedule(cronSchedule("0/20 * * * * ?")) 
  41.             .build();*/  
  42.         
  43.        /*   
  44.         job = newJob(SimpleJob.class) 
  45.             .withIdentity("job2", "group1") 
  46.             .build(); 
  47.          
  48.         //每2分钟执行一次,并且启动时间为:15秒之后开始,例如: 2011-07-08 04:44:15,2011-07-08 04:46:15 ... 
  49.        trigger = newTrigger() 
  50.             .withIdentity("trigger2", "group1") 
  51.             .withSchedule(cronSchedule("15 0/2 * * * ?")) 
  52.             .build();*/          
  53.          
  54.   
  55.        job = newJob(SimpleJob.class)  
  56.             .withIdentity("job3""group1")  
  57.             .build();  
  58.           
  59.         //在8-17之间每2分钟执行一次  
  60.         /*trigger = newTrigger() 
  61.             .withIdentity("trigger3", "group1") 
  62.             .withSchedule(cronSchedule("0 0/2 8-17 * * ?")) 
  63.             .build();*/  
  64.          
  65.        //在8-17之间每1分钟执行一次,并且为10秒间隔  
  66.        trigger = newTrigger()  
  67.        .withIdentity("trigger3""group1")  
  68.        .withSchedule(cronSchedule("0/10 0/1 8-17 * * ?"))  
  69.        .build();             
  70.          
  71.   
  72.        /* job = newJob(SimpleJob.class) 
  73.             .withIdentity("job4", "group1") 
  74.             .build(); 
  75.          
  76.         //在16与23之间每3分钟执行一次 
  77.         trigger = newTrigger() 
  78.             .withIdentity("trigger4", "group1") 
  79.             .withSchedule(cronSchedule("0 0/3 16-23 * * ?")) 
  80.             .build();*/  
  81.           
  82.         /*job = newJob(SimpleJob.class) 
  83.             .withIdentity("job5", "group1") 
  84.             .build(); 
  85.          
  86.         trigger = newTrigger() 
  87.             .withIdentity("trigger5", "group1") 
  88.             .withSchedule(cronSchedule("0 0 10am 1,15 * ?")) 
  89.             .build();*/  
  90.           
  91.        /* job = newJob(SimpleJob.class) 
  92.             .withIdentity("job6", "group1") 
  93.             .build(); 
  94.          
  95.         //2011-07-08 05:11:00,2011-07-08 05:11:02,2011-07-08 05:12:00,2011-07-08 05:12:02 
  96.         //第二周到第六周之间执行并且:执行秒数为:0,2各执行一次,没有明白为什么要间隔1分钟后触发,如上. 
  97.         trigger = newTrigger() 
  98.             .withIdentity("trigger6", "group1") 
  99.             .withSchedule(cronSchedule("0,2 * * ? * MON-FRI")) 
  100.             .build();*/  
  101. /* 
  102.         job = newJob(SimpleJob.class) 
  103.             .withIdentity("job7", "group1") 
  104.             .build(); 
  105.          
  106.         trigger = newTrigger() 
  107.             .withIdentity("trigger7", "group1") 
  108.             .withSchedule(cronSchedule("0,30 * * ? * SAT,SUN")) 
  109.             .build();*/         
  110.          
  111.   
  112.         ft = sched.scheduleJob(job, trigger);  
  113.         log.info(job.getKey() + " has been scheduled to run at: " + sdf.format(ft)  
  114.                 + " and repeat based on expression: "  
  115.                 + trigger.getCronExpression());  
  116.   
  117.         sched.start();  
  118.   
  119.         try {  
  120.             //5分钟  
  121.             Thread.sleep(300L * 1000L);  
  122.             
  123.         } catch (Exception e) {  
  124.         }  
  125.   
  126.         log.info("------- Shutting Down ---------------------");  
  127.   
  128.         sched.shutdown(true);  
  129.   
  130.         log.info("------- Shutdown Complete -----------------");  
  131.   
  132.         SchedulerMetaData metaData = sched.getMetaData();  
  133.         log.info("Executed " + metaData.getNumberOfJobsExecuted() + " jobs.");  
  134.   
  135.     }  
  136.   
  137.     public static void main(String[] args) throws Exception {  
  138.   
  139.         CronTriggerExample example = new CronTriggerExample();  
  140.         example.run();  
  141.     }  
  142. }  



3 SchedEventLister.java 

Java代码   收藏代码
  1. public class SchedEventLister implements Runnable {  
  2.   
  3.     private static Logger _log = LoggerFactory  
  4.             .getLogger(SchedEventLister.class);  
  5.   
  6.     private Scheduler sched = null;  
  7.     private TriggerKey triggerKey = null;  
  8.   
  9.     public SchedEventLister(TriggerKey triggerKey) {  
  10.         _log.info("触发器线程监听启动....");  
  11.         this.triggerKey = triggerKey;  
  12.         try {  
  13.             sched = SchedFacory.getScheduler();  
  14.         } catch (SchedulerException e) {  
  15.             e.printStackTrace();  
  16.         }  
  17.     }  
  18.   
  19.     @Override  
  20.     public void run() {  
  21.   
  22.         _log.info("触发器线程监听中。。。。"  
  23.                 + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")  
  24.                         .format(new Date()));  
  25.   
  26.         // 获取当前触发器的状态  
  27.         Trigger.TriggerState ts = null;  
  28.         try {  
  29.             ts = sched.getTriggerState(triggerKey);  
  30.         } catch (SchedulerException e) {  
  31.             e.printStackTrace();  
  32.         }  
  33.   
  34.         // 如果为暂停状态就恢复  
  35.         if (ts == Trigger.TriggerState.PAUSED) {  
  36.               
  37.             //暂停10秒在恢复  
  38.             try {  
  39.                 _log.warn("暂停当前线程5秒钟后在恢复触发器...,触发器组名: " + triggerKey.getGroup()  
  40.                         + ",触发器名称: " + triggerKey.getName());                 
  41.                 Thread.sleep(5L*1000L);  
  42.             } catch (InterruptedException e1) {               
  43.                 e1.printStackTrace();  
  44.             }  
  45.               
  46.             // 恢复触发器  
  47.             _log.warn("正在恢复了触发器...,触发器组名: " + triggerKey.getGroup()  
  48.                     + ",触发器名称: " + triggerKey.getName());  
  49.             try {  
  50.                 sched.resumeTrigger(triggerKey);  
  51.             } catch (SchedulerException e) {  
  52.                 throw new RuntimeException(e);  
  53.             }  
  54.               
  55.         } else if (ts == Trigger.TriggerState.NORMAL) {  
  56.             _log.info("触发器线程监听中。。。。,状态:正常 ");  
  57.         } else if (ts == Trigger.TriggerState.NONE) {  
  58.             _log.info("触发器线程监听中。。。。,状态:没有触发器 ");  
  59.         } else if (ts == Trigger.TriggerState.ERROR) {  
  60.             _log.info("触发器线程监听中。。。。,状态:错误 ");  
  61.         } else if (ts == Trigger.TriggerState.BLOCKED) {  
  62.             _log.info("触发器线程监听中。。。。,状态:堵塞 ");  
  63.         }  
  64.     }  
  65. }  



4 SchedFacory.java 

Java代码   收藏代码
  1. import org.quartz.Scheduler;  
  2. import org.quartz.SchedulerException;  
  3. import org.quartz.SchedulerFactory;  
  4. import org.quartz.impl.StdSchedulerFactory;  
  5.   
  6. /**    
  7.  *Title:      
  8.  *Description:      
  9.  *Copyright: Copyright (c) 2011    
  10.  *Company:http://liuzidong.iteye.com/     
  11.  *Makedate:2011-7-11 上午09:55:36    
  12.  * @author liuzidong    
  13.  * @version 1.0    
  14.  * @since 1.0     
  15.  *    
  16.  */  
  17. public class SchedFacory {  
  18.       
  19.     private static  SchedulerFactory sf = new StdSchedulerFactory();      
  20.       
  21.     public static Scheduler getScheduler() throws SchedulerException{  
  22.         return sf.getScheduler();  
  23.     }  
  24. }  



5 输出结果如下: 

Java代码   收藏代码
  1. [INFO] 2011-07-11 02:54:56.796 下午 main [org.quartz.simpl.SimpleThreadPool]  
  2. Job execution threads will use class loader of thread: main  
  3.   
  4. [INFO] 2011-07-11 02:54:56.812 下午 main [org.quartz.core.SchedulerSignalerImpl]  
  5. Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl  
  6.   
  7. [INFO] 2011-07-11 02:54:56.812 下午 main [org.quartz.core.QuartzScheduler]  
  8. Quartz Scheduler v.2.0.1 created.  
  9.   
  10. [INFO] 2011-07-11 02:54:56.812 下午 main [org.quartz.simpl.RAMJobStore]  
  11. RAMJobStore initialized.  
  12.   
  13. [INFO] 2011-07-11 02:54:56.812 下午 main [org.quartz.core.QuartzScheduler]  
  14. Scheduler meta-data: Quartz Scheduler (v2.0.1'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'  
  15.   Scheduler class'org.quartz.core.QuartzScheduler' - running locally.  
  16.   NOT STARTED.  
  17.   Currently in standby mode.  
  18.   Number of jobs executed: 0  
  19.   Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.  
  20.   Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.  
  21.   
  22.   
  23. [INFO] 2011-07-11 02:54:56.812 下午 main [org.quartz.impl.StdSchedulerFactory]  
  24. Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package'quartz.properties'  
  25.   
  26. [INFO] 2011-07-11 02:54:56.812 下午 main [org.quartz.impl.StdSchedulerFactory]  
  27. Quartz scheduler version: 2.0.1  
  28.   
  29. [INFO] 2011-07-11 02:54:56.828 下午 main [org.quartz.examples.example3.CronTriggerExample]  
  30. group1.job3 has been scheduled to run at: 2011-07-11 02:55:00 and repeat based on expression: 0/10 0/1 8-17 * * ?  
  31.   
  32. [INFO] 2011-07-11 02:54:56.828 下午 main [org.quartz.core.QuartzScheduler]  
  33. Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.  
  34.   
  35. [INFO] 2011-07-11 02:55:00.015 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.examples.example3.SchedEventLister]  
  36. 触发器线程监听启动....  
  37.   
  38. [INFO] 2011-07-11 02:55:00.015 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.examples.example3.SimpleJob]  
  39. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:55:00,计数: 1  
  40.   
  41. [INFO] 2011-07-11 02:55:00.015 下午 Thread-2 [org.quartz.examples.example3.SchedEventLister]  
  42. 触发器线程监听中。。。。2011-07-11 02:55:00  
  43.   
  44. [INFO] 2011-07-11 02:55:00.015 下午 Thread-2 [org.quartz.examples.example3.SchedEventLister]  
  45. 触发器线程监听中。。。。,状态:正常   
  46.   
  47. [INFO] 2011-07-11 02:55:10.000 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.examples.example3.SchedEventLister]  
  48. 触发器线程监听启动....  
  49.   
  50. [INFO] 2011-07-11 02:55:10.000 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.examples.example3.SimpleJob]  
  51. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:55:10,计数: 2  
  52.   
  53. [INFO] 2011-07-11 02:55:10.000 下午 Thread-3 [org.quartz.examples.example3.SchedEventLister]  
  54. 触发器线程监听中。。。。2011-07-11 02:55:10  
  55.   
  56. [INFO] 2011-07-11 02:55:10.000 下午 Thread-3 [org.quartz.examples.example3.SchedEventLister]  
  57. 触发器线程监听中。。。。,状态:正常   
  58.   
  59. [INFO] 2011-07-11 02:55:20.000 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.examples.example3.SchedEventLister]  
  60. 触发器线程监听启动....  
  61.   
  62. [INFO] 2011-07-11 02:55:20.000 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.examples.example3.SimpleJob]  
  63. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:55:20,计数: 3  
  64.   
  65. [INFO] 2011-07-11 02:55:20.000 下午 Thread-4 [org.quartz.examples.example3.SchedEventLister]  
  66. 触发器线程监听中。。。。2011-07-11 02:55:20  
  67.   
  68. [INFO] 2011-07-11 02:55:20.000 下午 Thread-4 [org.quartz.examples.example3.SchedEventLister]  
  69. 触发器线程监听中。。。。,状态:正常   
  70.   
  71. [INFO] 2011-07-11 02:55:30.000 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.examples.example3.SchedEventLister]  
  72. 触发器线程监听启动....  
  73.   
  74. [INFO] 2011-07-11 02:55:30.000 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.examples.example3.SimpleJob]  
  75. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:55:30,计数: 4  
  76.   
  77. [INFO] 2011-07-11 02:55:30.000 下午 Thread-5 [org.quartz.examples.example3.SchedEventLister]  
  78. 触发器线程监听中。。。。2011-07-11 02:55:30  
  79.   
  80. [INFO] 2011-07-11 02:55:30.000 下午 Thread-5 [org.quartz.examples.example3.SchedEventLister]  
  81. 触发器线程监听中。。。。,状态:正常   
  82.   
  83. [INFO] 2011-07-11 02:55:40.000 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.examples.example3.SchedEventLister]  
  84. 触发器线程监听启动....  
  85.   
  86. [INFO] 2011-07-11 02:55:40.000 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.examples.example3.SimpleJob]  
  87. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:55:40,计数: 5  
  88.   
  89. [INFO] 2011-07-11 02:55:40.000 下午 Thread-6 [org.quartz.examples.example3.SchedEventLister]  
  90. 触发器线程监听中。。。。2011-07-11 02:55:40  
  91.   
  92. [INFO] 2011-07-11 02:55:40.000 下午 Thread-6 [org.quartz.examples.example3.SchedEventLister]  
  93. 触发器线程监听中。。。。,状态:正常   
  94.   
  95. [INFO] 2011-07-11 02:55:50.000 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.examples.example3.SchedEventLister]  
  96. 触发器线程监听启动....  
  97.   
  98. [INFO] 2011-07-11 02:55:50.000 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.examples.example3.SimpleJob]  
  99. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:55:50,计数: 6  
  100.   
  101. [INFO] 2011-07-11 02:55:50.000 下午 Thread-7 [org.quartz.examples.example3.SchedEventLister]  
  102. 触发器线程监听中。。。。2011-07-11 02:55:50  
  103.   
  104. [INFO] 2011-07-11 02:55:50.000 下午 Thread-7 [org.quartz.examples.example3.SchedEventLister]  
  105. 触发器线程监听中。。。。,状态:正常   
  106.   
  107. [INFO] 2011-07-11 02:56:00.000 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.examples.example3.SchedEventLister]  
  108. 触发器线程监听启动....  
  109.   
  110. [INFO] 2011-07-11 02:56:00.000 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.examples.example3.SimpleJob]  
  111. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:56:00,计数: 7  
  112.   
  113. [INFO] 2011-07-11 02:56:00.000 下午 Thread-8 [org.quartz.examples.example3.SchedEventLister]  
  114. 触发器线程监听中。。。。2011-07-11 02:56:00  
  115.   
  116. [INFO] 2011-07-11 02:56:00.000 下午 Thread-8 [org.quartz.examples.example3.SchedEventLister]  
  117. 触发器线程监听中。。。。,状态:正常   
  118.   
  119. [INFO] 2011-07-11 02:56:10.000 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.examples.example3.SchedEventLister]  
  120. 触发器线程监听启动....  
  121.   
  122. [INFO] 2011-07-11 02:56:10.000 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.examples.example3.SimpleJob]  
  123. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:56:10,计数: 8  
  124.   
  125. [INFO] 2011-07-11 02:56:10.000 下午 Thread-9 [org.quartz.examples.example3.SchedEventLister]  
  126. 触发器线程监听中。。。。2011-07-11 02:56:10  
  127.   
  128. [INFO] 2011-07-11 02:56:10.000 下午 Thread-9 [org.quartz.examples.example3.SchedEventLister]  
  129. 触发器线程监听中。。。。,状态:正常   
  130.   
  131. [INFO] 2011-07-11 02:56:20.000 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.examples.example3.SchedEventLister]  
  132. 触发器线程监听启动....  
  133.   
  134. [INFO] 2011-07-11 02:56:20.000 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.examples.example3.SimpleJob]  
  135. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:56:20,计数: 9  
  136.   
  137. [INFO] 2011-07-11 02:56:20.000 下午 Thread-10 [org.quartz.examples.example3.SchedEventLister]  
  138. 触发器线程监听中。。。。2011-07-11 02:56:20  
  139.   
  140. [INFO] 2011-07-11 02:56:20.000 下午 Thread-10 [org.quartz.examples.example3.SchedEventLister]  
  141. 触发器线程监听中。。。。,状态:正常   
  142.   
  143. [INFO] 2011-07-11 02:56:30.000 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.examples.example3.SchedEventLister]  
  144. 触发器线程监听启动....  
  145.   
  146. [INFO] 2011-07-11 02:56:30.000 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.examples.example3.SimpleJob]  
  147. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:56:30,计数: 10  
  148.   
  149. [INFO] 2011-07-11 02:56:30.000 下午 Thread-11 [org.quartz.examples.example3.SchedEventLister]  
  150. 触发器线程监听中。。。。2011-07-11 02:56:30  
  151.   
  152. [INFO] 2011-07-11 02:56:30.000 下午 Thread-11 [org.quartz.examples.example3.SchedEventLister]  
  153. 触发器线程监听中。。。。,状态:正常   
  154.   
  155. [INFO] 2011-07-11 02:56:40.000 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.examples.example3.SchedEventLister]  
  156. 触发器线程监听启动....  
  157.   
  158. [INFO] 2011-07-11 02:56:40.000 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.examples.example3.SimpleJob]  
  159. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:56:40,计数: 11  
  160.   
  161. [INFO] 2011-07-11 02:56:40.000 下午 Thread-12 [org.quartz.examples.example3.SchedEventLister]  
  162. 触发器线程监听中。。。。2011-07-11 02:56:40  
  163.   
  164. [INFO] 2011-07-11 02:56:40.000 下午 Thread-12 [org.quartz.examples.example3.SchedEventLister]  
  165. 触发器线程监听中。。。。,状态:正常   
  166.   
  167. [INFO] 2011-07-11 02:56:50.000 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.examples.example3.SchedEventLister]  
  168. 触发器线程监听启动....  
  169.   
  170. [INFO] 2011-07-11 02:56:50.000 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.examples.example3.SimpleJob]  
  171. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:56:50,计数: 12  
  172.   
  173. [INFO] 2011-07-11 02:56:50.000 下午 Thread-13 [org.quartz.examples.example3.SchedEventLister]  
  174. 触发器线程监听中。。。。2011-07-11 02:56:50  
  175.   
  176. [INFO] 2011-07-11 02:56:50.000 下午 Thread-13 [org.quartz.examples.example3.SchedEventLister]  
  177. 触发器线程监听中。。。。,状态:正常   
  178.   
  179. [INFO] 2011-07-11 02:57:00.000 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.examples.example3.SchedEventLister]  
  180. 触发器线程监听启动....  
  181.   
  182. [INFO] 2011-07-11 02:57:00.000 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.examples.example3.SimpleJob]  
  183. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:57:00,计数: 13  
  184.   
  185. [INFO] 2011-07-11 02:57:00.000 下午 Thread-14 [org.quartz.examples.example3.SchedEventLister]  
  186. 触发器线程监听中。。。。2011-07-11 02:57:00  
  187.   
  188. [INFO] 2011-07-11 02:57:00.000 下午 Thread-14 [org.quartz.examples.example3.SchedEventLister]  
  189. 触发器线程监听中。。。。,状态:正常   
  190.   
  191. [INFO] 2011-07-11 02:57:10.000 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.examples.example3.SchedEventLister]  
  192. 触发器线程监听启动....  
  193.   
  194. [INFO] 2011-07-11 02:57:10.000 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.examples.example3.SimpleJob]  
  195. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:57:10,计数: 14  
  196.   
  197. [INFO] 2011-07-11 02:57:10.000 下午 Thread-15 [org.quartz.examples.example3.SchedEventLister]  
  198. 触发器线程监听中。。。。2011-07-11 02:57:10  
  199.   
  200. [INFO] 2011-07-11 02:57:10.000 下午 Thread-15 [org.quartz.examples.example3.SchedEventLister]  
  201. 触发器线程监听中。。。。,状态:正常   
  202.   
  203. [INFO] 2011-07-11 02:57:20.000 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.examples.example3.SchedEventLister]  
  204. 触发器线程监听启动....  
  205.   
  206. [INFO] 2011-07-11 02:57:20.000 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.examples.example3.SimpleJob]  
  207. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:57:20,计数: 15  
  208.   
  209. [WARN] 2011-07-11 02:57:20.000 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.examples.example3.SimpleJob]  
  210. 已经暂停了触发器...,触发器组名: group1,触发器名称: trigger3  
  211.   
  212. [INFO] 2011-07-11 02:57:20.000 下午 Thread-16 [org.quartz.examples.example3.SchedEventLister]  
  213. 触发器线程监听中。。。。2011-07-11 02:57:20  
  214.   
  215. [WARN] 2011-07-11 02:57:20.000 下午 Thread-16 [org.quartz.examples.example3.SchedEventLister]  
  216. 暂停当前线程5秒钟后在恢复触发器...,触发器组名: group1,触发器名称: trigger3  
  217.   
  218. [WARN] 2011-07-11 02:57:25.000 下午 Thread-16 [org.quartz.examples.example3.SchedEventLister]  
  219. 正在恢复了触发器...,触发器组名: group1,触发器名称: trigger3  
  220.   
  221. [INFO] 2011-07-11 02:57:30.015 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.examples.example3.SchedEventLister]  
  222. 触发器线程监听启动....  
  223.   
  224. [INFO] 2011-07-11 02:57:30.031 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.examples.example3.SimpleJob]  
  225. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:57:30,计数: 16  
  226.   
  227. [INFO] 2011-07-11 02:57:30.031 下午 Thread-17 [org.quartz.examples.example3.SchedEventLister]  
  228. 触发器线程监听中。。。。2011-07-11 02:57:30  
  229.   
  230. [INFO] 2011-07-11 02:57:30.031 下午 Thread-17 [org.quartz.examples.example3.SchedEventLister]  
  231. 触发器线程监听中。。。。,状态:正常   
  232.   
  233. [INFO] 2011-07-11 02:57:40.000 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.examples.example3.SchedEventLister]  
  234. 触发器线程监听启动....  
  235.   
  236. [INFO] 2011-07-11 02:57:40.000 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.examples.example3.SimpleJob]  
  237. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:57:40,计数: 17  
  238.   
  239. [INFO] 2011-07-11 02:57:40.000 下午 Thread-18 [org.quartz.examples.example3.SchedEventLister]  
  240. 触发器线程监听中。。。。2011-07-11 02:57:40  
  241.   
  242. [INFO] 2011-07-11 02:57:40.000 下午 Thread-18 [org.quartz.examples.example3.SchedEventLister]  
  243. 触发器线程监听中。。。。,状态:正常   
  244.   
  245. [INFO] 2011-07-11 02:57:50.000 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.examples.example3.SchedEventLister]  
  246. 触发器线程监听启动....  
  247.   
  248. [INFO] 2011-07-11 02:57:50.000 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.examples.example3.SimpleJob]  
  249. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:57:50,计数: 18  
  250.   
  251. [INFO] 2011-07-11 02:57:50.000 下午 Thread-19 [org.quartz.examples.example3.SchedEventLister]  
  252. 触发器线程监听中。。。。2011-07-11 02:57:50  
  253.   
  254. [INFO] 2011-07-11 02:57:50.000 下午 Thread-19 [org.quartz.examples.example3.SchedEventLister]  
  255. 触发器线程监听中。。。。,状态:正常   
  256.   
  257. [INFO] 2011-07-11 02:58:00.000 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.examples.example3.SchedEventLister]  
  258. 触发器线程监听启动....  
  259.   
  260. [INFO] 2011-07-11 02:58:00.000 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.examples.example3.SimpleJob]  
  261. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:58:00,计数: 19  
  262.   
  263. [INFO] 2011-07-11 02:58:00.000 下午 Thread-20 [org.quartz.examples.example3.SchedEventLister]  
  264. 触发器线程监听中。。。。2011-07-11 02:58:00  
  265.   
  266. [INFO] 2011-07-11 02:58:00.000 下午 Thread-20 [org.quartz.examples.example3.SchedEventLister]  
  267. 触发器线程监听中。。。。,状态:正常   
  268.   
  269. [INFO] 2011-07-11 02:58:10.000 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.examples.example3.SchedEventLister]  
  270. 触发器线程监听启动....  
  271.   
  272. [INFO] 2011-07-11 02:58:10.000 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.examples.example3.SimpleJob]  
  273. 任务分组名称: group1,任务名称: job3,触发器组名称: group1,触发器名称: trigger3 执行时间: 2011-07-11 02:58:10,计数: 20  
  274.   
  275. [INFO] 2011-07-11 02:58:10.000 下午 Thread-21 [org.quartz.examples.example3.SchedEventLister]  
  276. 触发器线程监听中。。。。2011-07-11 02:58:10  
  277.   
  278. [ERROR] 2011-07-11 02:58:10.000 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.examples.example3.SimpleJob]  
  279. 正在停止并且移除触发器...,触发器组名: group1,触发器名称: trigger3  
  280.   
  281. [INFO] 2011-07-11 02:58:10.000 下午 Thread-21 [org.quartz.examples.example3.SchedEventLister]  
  282. 触发器线程监听中。。。。,状态:正常   
  283.   
  284. [INFO] 2011-07-11 02:59:56.828 下午 main [org.quartz.examples.example3.CronTriggerExample]  
  285. ------- Shutting Down ---------------------  
  286.   
  287. [INFO] 2011-07-11 02:59:56.828 下午 main [org.quartz.core.QuartzScheduler]  
  288. Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutting down.  
  289.   
  290. [INFO] 2011-07-11 02:59:56.828 下午 main [org.quartz.core.QuartzScheduler]  
  291. Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED paused.  
  292.   
  293. [INFO] 2011-07-11 02:59:56.828 下午 main [org.quartz.core.QuartzScheduler]  
  294. Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutdown complete.  
  295.   
  296. [INFO] 2011-07-11 02:59:56.828 下午 main [org.quartz.examples.example3.CronTriggerExample]  
  297. ------- Shutdown Complete -----------------  
  298.   
  299. [INFO] 2011-07-11 02:59:56.828 下午 main [org.quartz.examples.example3.CronTriggerExample]  
  300. Executed 20 jobs.  
分享到:
评论

相关推荐

    关于quartz中CronTrigger的使用说明

    quartz中CronTrigger的使用方法,列举了比较详细的例子。希望对你有所帮助。

    Quartz CronTrigger配置说明

    Quartz CronTrigger配置说明Quartz CronTrigger配置说明Quartz CronTrigger配置说明Quartz CronTrigger配置说明

    Quartz 多任务和单任务实现java源码

    Quartz SimpleTrigger CronTrigger java 源码 多任务 单任务实现 jobQuartz SimpleTrigger CronTrigger java 源码 多任务 单任务实现 job

    quartz-all-1.6.6.jar

    quartz-all-1.6.6.jar ...否则报错 java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class

    CronTrigger

    spring quartz定时器的表达式

    springboot jpa quartz动态定时任务

    springboot jpa quartz 动态定时任务,任务增加,任务删除,任务修改demo,非常简单

    quartz定时任务使用例子大全

    这里面介绍了三种使用quartz定时任务的方式,第一种方式是完全使用代码写死的调用方式,第二种使用的是从数据库读取任务配置信息的调用方式,第三种是使用从数据库读取任务配置,生成CronTrigger的调用方式,...

    Quartz 表达式自动生成插件

    Quartz 表达式自动生成插件,可以自动CronTrigger表达式

    quartz_demo集合

    自己整理个一个quartz_demo集合,demo含CronTrigger方式、SimpleTrigger方式、spring集成CronTrigger方式、spring集成SimpleTrigger方式以及有状态作业方式。

    Quartz学习的eclipse项目的实例

    Quartz学习的eclipse项目的实例

    Quartz-Job-Scheduling-Framework-中文版-V0.9.1.zip

    内容提要:Quartz 从属性文件中加载多个插件类时不能保证加载的顺序,所以本节引入一个自定义的统一按顺序加载其他插件的,名之为插件加载器的东西,其实也就是其他插件类的父亲。 第八章. 使用 Quartz 插件 (第五...

    springboot整合quartz的demo

    springboot整合quartz的demo,实现了simpleTrigger和cronTrigger,具体功能如下:项目启动后,每隔两秒输出一串星号,每隔三秒输出一串#号,访问controller后,添加定时任务,十秒后输出访问者的ip

    quartz样例源代码

    1)与spring结合,创建crontrigger、simpletrigger 2)java代码实现quartz; 3)数据库持久化 3、使用说明 1)如果使用数据库持久化,请将conf\quartz.properties文件放到工程根目录下; 2)请初始化数据库,...

    quartz 日期定时器例子

    一个关于quartz定时器的例子,基于日历指定触发器,可以使用CronTrigger。使用CronTrigger可以实现类似的触发器,比如:每个星期五的下午。比如每个星期一,三和五的上午9点到10点之间每隔5分钟。 CronTrigger也有...

    demo-quartzExpress.rar(quartz表达式

    quartz表达式,可直接解压,使用java本地运行即可查看,编辑表达式,方便定时任务一目了然查看。cron表达式用于配置cronTrigger的实例。cron表达式实际上是由七个子表达式组成。这些表达式之间用空格分隔。

    quartz 包,源文件与 使用说明

    Quertz中提供了两类触发器为:SimpleTrigger,CronTrigger。前者用于实现比较简单的定时功能,例如几点开始,几 点结束,隔多长时间执行,共执行多少次等,后者提供了使用表达式来描述定时功能,因此适用于比较复杂的...

    CH06-邮件发送.pptx

    Quartz框架的使用步骤是什么? SimpleTrigger和CronTrigger的区别是什么? 使用Spring整合Quartz的步骤是什么?

    spring学习

    学习了spring中aop原理,学习并实现简单的ioc注入,学习了一些关于quartz的用法(simpletrigger,crontrigger),简单的一些事务配置等

    demo-quartzExpress.rar

    quartz表达式,可直接解压,使用java本地运行即可查看,编辑表达式,方便定时任务一目了然查看。cron表达式用于配置cronTrigger的实例。cron表达式实际上是由七个子表达式组成。这些表达式之间用空格分隔。

    gitbucket-backup-plugin:为GitBucket提供所有备份功能

    gitbucket备份插件为GitBucket提供所有备份功能特征该插件为以下数据提供备份功能。 数据库内容用户存储库Wiki资料库发行和发布的附件用户头像数据并通过电子邮件... # Backup timing (Required)# For details, see ...

Global site tag (gtag.js) - Google Analytics