`
yimeng528
  • 浏览: 189313 次
  • 性别: 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`是一种基于Cron表达式的触发器,它允许我们按照类似Unix/Linux操作系统中的Cron任务的方式来定义执行时间表。通过CronTrigger,我们可以...

    Quartz CronTrigger配置说明

    ### Quartz CronTrigger配置详解 #### 一、CronTrigger简介 CronTrigger 是 Quartz 调度器中一种非常强大的任务触发机制,它基于类似于 Unix cron 的表达式来定义任务的执行时间。CronTrigger 表达式由七个或八个...

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

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

    CronTrigger的未触发指令学习

    在任务调度的世界里,CronTrigger是Quartz库中的一个核心组件,用于根据特定的cron表达式执行任务。CronTrigger允许我们按照时间表(如每日、每周或每小时)来安排我们的作业。这篇博客“CronTrigger的未触发指令...

    Android studio下的quartz工程

    你可以使用`org.quartz.CronTrigger`或`org.quartz.SimpleTrigger`来创建。例如,以下代码创建了一个基于cron表达式的触发器,每天的10点30分执行: ```java import org.quartz.CronScheduleBuilder; import org....

    CronTrigger

    ### CronTrigger 在 Spring Quartz 定时任务中的应用 #### 一、CronTrigger 概述 CronTrigger 是 Spring Quartz 框架中用于定义基于日历规则的任务调度的一种方式。与 SimpleTrigger 相比,CronTrigger 提供了更...

    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

    quartz quartz-1.8.6 dbTables 建表sql

    Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。它提供了丰富的API和灵活性,使得开发者可以方便地定义、安排和管理各种任务。版本1.8.6是Quartz的一个稳定版本,它包含了对数据库...

    java quartz 定时任务

    - 定义Trigger:使用`org.quartz.CronTrigger`类来创建触发器,其中设置Cron表达式。 - 调度Job:将Job与Trigger关联,添加到Scheduler中,这样就定义了一个定时任务。 6. **JobDetail和Trigger**: - JobDetail...

    quartz界面化持久化管理

    - 使用`org.quartz.CronTrigger`或`org.quartz.SimpleTrigger`根据需求设置触发规则,例如定时、周期性执行。 5. **界面化管理**: - 开发一个Web界面,通过HTTP请求与后台服务交互,实现任务的增删改查操作。 -...

    quartz.jar包下载

    5. **丰富的触发器类型**:除了CronTrigger,Quartz还提供了SimpleTrigger、CalendarIntervalTrigger等多种触发器类型,满足不同类型的定时需求。 使用Quartz.jar的基本步骤如下: 1. **下载与导入**:首先你需要...

    quartz-all.zip

    我们可以使用`org.quartz.CronTrigger`或`org.quartz.SimpleTrigger`来定义触发器。CronTrigger基于cron表达式,可以设置复杂的重复执行计划,而SimpleTrigger则用于简单的间隔执行。在Spring配置中,定义一个`org....

    一个java Quartz的小例子

    import org.quartz.CronTrigger; // ... // 创建CronTrigger String cronExpression = "0 0 9 * * ?"; // 每天9点0分执行 CronTrigger trigger = TriggerBuilder.newTrigger() .withIdentity("myCronTrigger", ...

    关于spring中quartz的配置

    在Spring框架中集成Quartz是一款常见的任务调度解决方案,它允许开发者在应用中安排定时任务的执行。Quartz是一个开源的作业调度框架,可以用来在Java应用程序中安排复杂的作业任务。以下将详细介绍如何在Spring中...

    Quartz.net-定时任务 Demo

    Quartz.NET提供了多种类型的Trigger,如SimpleTrigger(简单触发器)和CronTrigger(CRON触发器)。对于"几十分钟后执行"的需求,可以使用SimpleTrigger: ```csharp var trigger = new SimpleTriggerImpl(...

    quartz和spring-quartz

    Quartz提供了多种Trigger类型,如SimpleTrigger(简单触发器)用于一次性或间隔执行,CronTrigger(cron触发器)则可以按照预定义的cron表达式周期性执行。 3. **Scheduler**: Scheduler是整个框架的管理者,它负责...

    quartz实例,quartz入门例子

    Quartz提供了多种类型的Trigger,如SimpleTrigger(简单触发器)和CronTrigger(基于CRON表达式的触发器)。 3. **Scheduler**:调度器,负责管理和执行Jobs及Triggers。通过`org.quartz.Scheduler`接口与Quartz交互...

    Quartz一个开源作业调度框架

    import org.quartz.CronTrigger; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerFactory; import org.quartz.TriggerUtils; import org.quartz.impl.StdSchedulerFactory;...

    quartz3种调度形式+传参.zip

    CronTrigger是Quartz中的一种触发器类型,它允许你基于Cron表达式设置任务的执行时间。Cron表达式是一种字符串格式,用于定义任务执行的时间规则,如“0 0 12 * * ?”表示每天中午12点执行。通过这种方式,你可以...

    quartz的cron表达式生成工具

    `quartz-monitor`可能是一个用于监视和管理Quartz集群的Web应用,它允许用户查看正在运行的任务、触发器以及它们的状态,包括CronTrigger的调度信息。 了解了这些基本概念后,开发者可以更有效地利用Quartz和Cron...

Global site tag (gtag.js) - Google Analytics