1. /*
  2. * Copyright 2005 - 2009 Terracotta, Inc.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  5. * use this file except in compliance with the License. You may obtain a copy
  6. * of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations
  14. * under the License.
  15. *
  16. */
  17.  
  18. package org.quartz.examples.example2;
  19.  
  20. import java.util.Date;
  21.  
  22. import org.slf4j.Logger;
  23. import org.slf4j.LoggerFactory;
  24. import org.quartz.Job;
  25. import org.quartz.JobExecutionContext;
  26. import org.quartz.JobExecutionException;
  27.  
  28. /**
  29. * <p>
  30. * This is just a simple job that gets fired off many times by example 1
  31. * </p>
  32. *
  33. * @author Bill Kratzer
  34. */
  35. public class SimpleJob implements Job {
  36.  
  37. private static Logger _log = LoggerFactory.getLogger(SimpleJob.class);
  38.  
  39. /**
  40. * Empty constructor for job initilization
  41. */
  42. public SimpleJob() {
  43. }
  44.  
  45. /**
  46. * <p>
  47. * Called by the <code>{@link org.quartz.Scheduler}</code> when a
  48. * <code>{@link org.quartz.Trigger}</code> fires that is associated with
  49. * the <code>Job</code>.
  50. * </p>
  51. *
  52. * @throws JobExecutionException
  53. * if there is an exception while executing the job.
  54. */
  55. public void execute(JobExecutionContext context)
  56. throws JobExecutionException {
  57.  
  58. // This job simply prints out its job name and the
  59. // date and time that it is running
  60. String jobName = context.getJobDetail().getFullName();
  61. _log.info("SimpleJob says: " + jobName + " executing at " + new Date());
  62. }
  63.  
  64. }
  1. /*
  2. * Copyright 2005 - 2009 Terracotta, Inc.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  5. * use this file except in compliance with the License. You may obtain a copy
  6. * of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations
  14. * under the License.
  15. *
  16. */
  17.  
  18. package org.quartz.examples.example2;
  19.  
  20. import java.util.Date;
  21.  
  22. import org.quartz.JobDetail;
  23. import org.quartz.Scheduler;
  24. import org.quartz.SchedulerFactory;
  25. import org.quartz.SchedulerMetaData;
  26. import org.quartz.SimpleTrigger;
  27. import org.quartz.TriggerUtils;
  28. import org.quartz.impl.StdSchedulerFactory;
  29.  
  30. import org.slf4j.LoggerFactory;
  31. import org.slf4j.Logger;
  32.  
  33. /**
  34. * This Example will demonstrate all of the basics of scheduling capabilities
  35. * of Quartz using Simple Triggers.
  36. *
  37. * @author Bill Kratzer
  38. */
  39. public class SimpleTriggerExample {
  40.  
  41. public void run() throws Exception {
  42. Logger log = LoggerFactory.getLogger(SimpleTriggerExample.class);
  43.  
  44. log.info("------- Initializing -------------------");
  45.  
  46. // First we must get a reference to a scheduler
  47. SchedulerFactory sf = new StdSchedulerFactory();
  48. Scheduler sched = sf.getScheduler();
  49.  
  50. log.info("------- Initialization Complete --------");
  51.  
  52. log.info("------- Scheduling Jobs ----------------");
  53.  
  54. // jobs can be scheduled before sched.start() has been called
  55.  
  56. // get a "nice round" time a few seconds in the future...
  57. long ts = TriggerUtils.getNextGivenSecondDate(null, 15).getTime();
  58.  
  59. // job1 will only fire once at date/time "ts"
  60. JobDetail job = new JobDetail("job1", "group1", SimpleJob.class);
  61. SimpleTrigger trigger =
  62. new SimpleTrigger("trigger1", "group1", new Date(ts));
  63.  
  64. // schedule it to run!
  65. Date ft = sched.scheduleJob(job, trigger);
  66. log.info(job.getFullName() +
  67. " will run at: " + ft +
  68. " and repeat: " + trigger.getRepeatCount() +
  69. " times, every " + trigger.getRepeatInterval() / 1000 + " seconds");
  70.  
  71. // job2 will only fire once at date/time "ts"
  72. job = new JobDetail("job2", "group1", SimpleJob.class);
  73. trigger = new SimpleTrigger("trigger2", "group1", "job2", "group1",
  74. new Date(ts), null, 0, 0);
  75. ft = sched.scheduleJob(job, trigger);
  76. log.info(job.getFullName() +
  77. " will run at: " + ft +
  78. " and repeat: " + trigger.getRepeatCount() +
  79. " times, every " + trigger.getRepeatInterval() / 1000 + " seconds");
  80.  
  81. // job3 will run 11 times (run once and repeat 10 more times)
  82. // job3 will repeat every 10 seconds (10000 ms)
  83. job = new JobDetail("job3", "group1", SimpleJob.class);
  84. trigger = new SimpleTrigger("trigger3", "group1", "job3", "group1",
  85. new Date(ts), null, 10, 10000L);
  86. ft = sched.scheduleJob(job, trigger);
  87. log.info(job.getFullName() +
  88. " will run at: " + ft +
  89. " and repeat: " + trigger.getRepeatCount() +
  90. " times, every " + trigger.getRepeatInterval() / 1000 + " seconds");
  91.  
  92. // the same job (job3) will be scheduled by a another trigger
  93. // this time will only run every 70 seocnds (70000 ms)
  94. trigger = new SimpleTrigger("trigger3", "group2", "job3", "group1",
  95. new Date(ts), null, 2, 70000L);
  96. ft = sched.scheduleJob(trigger);
  97. log.info(job.getFullName() +
  98. " will [also] run at: " + ft +
  99. " and repeat: " + trigger.getRepeatCount() +
  100. " times, every " + trigger.getRepeatInterval() / 1000 + " seconds");
  101.  
  102. // job4 will run 6 times (run once and repeat 5 more times)
  103. // job4 will repeat every 10 seconds (10000 ms)
  104. job = new JobDetail("job4", "group1", SimpleJob.class);
  105. trigger = new SimpleTrigger("trigger4", "group1", "job4", "group1",
  106. new Date(ts), null, 5, 10000L);
  107. ft = sched.scheduleJob(job, trigger);
  108. log.info(job.getFullName() +
  109. " will run at: " + ft +
  110. " and repeat: " + trigger.getRepeatCount() +
  111. " times, every " + trigger.getRepeatInterval() / 1000 + " seconds");
  112.  
  113. // job5 will run once, five minutes past "ts" (300 seconds past "ts")
  114. job = new JobDetail("job5", "group1", SimpleJob.class);
  115. trigger = new SimpleTrigger("trigger5", "group1", "job5", "group1",
  116. new Date(ts + 300000L), null, 0, 0);
  117. ft = sched.scheduleJob(job, trigger);
  118. log.info(job.getFullName() +
  119. " will run at: " + ft +
  120. " and repeat: " + trigger.getRepeatCount() +
  121. " times, every " + trigger.getRepeatInterval() / 1000 + " seconds");
  122.  
  123. // job6 will run indefinitely, every 50 seconds
  124. job = new JobDetail("job6", "group1", SimpleJob.class);
  125. trigger = new SimpleTrigger("trigger6", "group1", "job6", "group1",
  126. new Date(ts), null, SimpleTrigger.REPEAT_INDEFINITELY, 50000L);
  127. ft = sched.scheduleJob(job, trigger);
  128. log.info(job.getFullName() +
  129. " will run at: " + ft +
  130. " and repeat: " + trigger.getRepeatCount() +
  131. " times, every " + trigger.getRepeatInterval() / 1000 + " seconds");
  132.  
  133. log.info("------- Starting Scheduler ----------------");
  134.  
  135. // All of the jobs have been added to the scheduler, but none of the jobs
  136. // will run until the scheduler has been started
  137. sched.start();
  138.  
  139. log.info("------- Started Scheduler -----------------");
  140.  
  141. // jobs can also be scheduled after start() has been called...
  142. // job7 will repeat 20 times, repeat every five minutes
  143. job = new JobDetail("job7", "group1", SimpleJob.class);
  144. trigger = new SimpleTrigger("trigger7", "group1", "job7", "group1",
  145. new Date(ts), null, 20, 300000L);
  146. ft = sched.scheduleJob(job, trigger);
  147. log.info(job.getFullName() +
  148. " will run at: " + ft +
  149. " and repeat: " + trigger.getRepeatCount() +
  150. " times, every " + trigger.getRepeatInterval() / 1000 + " seconds");
  151.  
  152. // jobs can be fired directly... (rather than waiting for a trigger)
  153. job = new JobDetail("job8", "group1", SimpleJob.class);
  154. job.setDurability(true);
  155. sched.addJob(job, true);
  156. log.info("'Manually' triggering job8...");
  157. sched.triggerJob("job8", "group1");
  158.  
  159. log.info("------- Waiting 30 seconds... --------------");
  160.  
  161. try {
  162. // wait 30 seconds to show jobs
  163. Thread.sleep(30L * 1000L);
  164. // executing...
  165. } catch (Exception e) {
  166. }
  167.  
  168. // jobs can be re-scheduled...
  169. // job 7 will run immediately and repeat 10 times for every second
  170. log.info("------- Rescheduling... --------------------");
  171. trigger = new SimpleTrigger("trigger7", "group1", "job7", "group1",
  172. new Date(), null, 10, 1000L);
  173. ft = sched.rescheduleJob("trigger7", "group1", trigger);
  174. log.info("job7 rescheduled to run at: " + ft);
  175.  
  176. log.info("------- Waiting five minutes... ------------");
  177. try {
  178. // wait five minutes to show jobs
  179. Thread.sleep(300L * 1000L);
  180. // executing...
  181. } catch (Exception e) {
  182. }
  183.  
  184. log.info("------- Shutting Down ---------------------");
  185.  
  186. sched.shutdown(true);
  187.  
  188. log.info("------- Shutdown Complete -----------------");
  189.  
  190. // display some stats about the schedule that just ran
  191. SchedulerMetaData metaData = sched.getMetaData();
  192. log.info("Executed " + metaData.getNumberOfJobsExecuted() + " jobs.");
  193.  
  194. }
  195.  
  196. public static void main(String[] args) throws Exception {
  197.  
  198. SimpleTriggerExample example = new SimpleTriggerExample();
  199. example.run();
  200.  
  201. }
  202.  
  203. }

 

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
  3.  
  4. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  5.  
  6. <appender name="default" class="org.apache.log4j.ConsoleAppender">
  7. <param name="target" value="System.out"/>
  8. <layout class="org.apache.log4j.PatternLayout">
  9. <param name="ConversionPattern" value="[%p] %d{dd MMM hh:mm:ss.SSS aa} %t [%c]%n%m%n%n"/>
  10. </layout>
  11. </appender>
  12.  
  13. <logger name="org.quartz">
  14. <level value="debug" />
  15. </logger>
  16.  
  17. <root>
  18. <level value="debug" />
  19. <appender-ref ref="default" />
  20. </root>
  21.  
  22. </log4j:configuration>
  1. [INFO] 02 二月 01:28:00.759 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  2. ------- Initializing -------------------
  3.  
  4. [INFO] 02 二月 01:28:00.782 下午 main [org.quartz.simpl.SimpleThreadPool]
  5. Job execution threads will use class loader of thread: main
  6.  
  7. [INFO] 02 二月 01:28:00.794 下午 main [org.quartz.core.SchedulerSignalerImpl]
  8. Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
  9.  
  10. [INFO] 02 二月 01:28:00.795 下午 main [org.quartz.core.QuartzScheduler]
  11. Quartz Scheduler v.1.8.5 created.
  12.  
  13. [INFO] 02 二月 01:28:00.796 下午 main [org.quartz.simpl.RAMJobStore]
  14. RAMJobStore initialized.
  15.  
  16. [INFO] 02 二月 01:28:00.797 下午 main [org.quartz.core.QuartzScheduler]
  17. Scheduler meta-data: Quartz Scheduler (v1.8.5) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'
  18. Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
  19. NOT STARTED.
  20. Currently in standby mode.
  21. Number of jobs executed: 0
  22. Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
  23. Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
  24.  
  25. [INFO] 02 二月 01:28:00.797 下午 main [org.quartz.impl.StdSchedulerFactory]
  26. Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
  27.  
  28. [INFO] 02 二月 01:28:00.797 下午 main [org.quartz.impl.StdSchedulerFactory]
  29. Quartz scheduler version: 1.8.5
  30.  
  31. [INFO] 02 二月 01:28:00.797 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  32. ------- Initialization Complete --------
  33.  
  34. [INFO] 02 二月 01:28:00.797 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  35. ------- Scheduling Jobs ----------------
  36.  
  37. [INFO] 02 二月 01:28:00.802 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  38. group1.job1 will run at: Tue Feb 02 13:28:15 CST 2016 and repeat: 0 times, every 0 seconds
  39.  
  40. [INFO] 02 二月 01:28:00.802 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  41. group1.job2 will run at: Tue Feb 02 13:28:15 CST 2016 and repeat: 0 times, every 0 seconds
  42.  
  43. [INFO] 02 二月 01:28:00.802 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  44. group1.job3 will run at: Tue Feb 02 13:28:15 CST 2016 and repeat: 10 times, every 10 seconds
  45.  
  46. [INFO] 02 二月 01:28:00.803 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  47. group1.job3 will [also] run at: Tue Feb 02 13:28:15 CST 2016 and repeat: 2 times, every 70 seconds
  48.  
  49. [INFO] 02 二月 01:28:00.803 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  50. group1.job4 will run at: Tue Feb 02 13:28:15 CST 2016 and repeat: 5 times, every 10 seconds
  51.  
  52. [INFO] 02 二月 01:28:00.803 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  53. group1.job5 will run at: Tue Feb 02 13:33:15 CST 2016 and repeat: 0 times, every 0 seconds
  54.  
  55. [INFO] 02 二月 01:28:00.803 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  56. group1.job6 will run at: Tue Feb 02 13:28:15 CST 2016 and repeat: -1 times, every 50 seconds
  57.  
  58. [INFO] 02 二月 01:28:00.803 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  59. ------- Starting Scheduler ----------------
  60.  
  61. [INFO] 02 二月 01:28:00.803 下午 main [org.quartz.core.QuartzScheduler]
  62. Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
  63.  
  64. [INFO] 02 二月 01:28:00.803 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  65. ------- Started Scheduler -----------------
  66.  
  67. [INFO] 02 二月 01:28:00.804 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  68. group1.job7 will run at: Tue Feb 02 13:28:15 CST 2016 and repeat: 20 times, every 300 seconds
  69.  
  70. [INFO] 02 二月 01:28:00.804 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  71. 'Manually' triggering job8...
  72.  
  73. [INFO] 02 二月 01:28:00.804 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  74. ------- Waiting 30 seconds... --------------
  75.  
  76. [DEBUG] 02 二月 01:28:00.806 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  77. Producing instance of Job 'group1.job8', class=org.quartz.examples.example2.SimpleJob
  78.  
  79. [DEBUG] 02 二月 01:28:00.809 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.core.JobRunShell]
  80. Calling execute on job group1.job8
  81.  
  82. [INFO] 02 二月 01:28:00.809 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.examples.example2.SimpleJob]
  83. SimpleJob says: group1.job8 executing at Tue Feb 02 13:28:00 CST 2016
  84.  
  85. [DEBUG] 02 二月 01:28:01.796 下午 Timer-0 [org.quartz.utils.UpdateChecker]
  86. Checking for available updated version of Quartz...
  87.  
  88. [DEBUG] 02 二月 01:28:15.001 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  89. Producing instance of Job 'group1.job1', class=org.quartz.examples.example2.SimpleJob
  90.  
  91. [DEBUG] 02 二月 01:28:15.002 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  92. Producing instance of Job 'group1.job2', class=org.quartz.examples.example2.SimpleJob
  93.  
  94. [DEBUG] 02 二月 01:28:15.002 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.core.JobRunShell]
  95. Calling execute on job group1.job1
  96.  
  97. [DEBUG] 02 二月 01:28:15.002 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  98. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  99.  
  100. [DEBUG] 02 二月 01:28:15.002 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.core.JobRunShell]
  101. Calling execute on job group1.job2
  102.  
  103. [DEBUG] 02 二月 01:28:15.003 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  104. Producing instance of Job 'group1.job4', class=org.quartz.examples.example2.SimpleJob
  105.  
  106. [DEBUG] 02 二月 01:28:15.003 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.core.JobRunShell]
  107. Calling execute on job group1.job3
  108.  
  109. [INFO] 02 二月 01:28:15.003 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.examples.example2.SimpleJob]
  110. SimpleJob says: group1.job1 executing at Tue Feb 02 13:28:15 CST 2016
  111.  
  112. [INFO] 02 二月 01:28:15.005 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.examples.example2.SimpleJob]
  113. SimpleJob says: group1.job3 executing at Tue Feb 02 13:28:15 CST 2016
  114.  
  115. [DEBUG] 02 二月 01:28:15.004 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  116. Producing instance of Job 'group1.job6', class=org.quartz.examples.example2.SimpleJob
  117.  
  118. [DEBUG] 02 二月 01:28:15.004 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.core.JobRunShell]
  119. Calling execute on job group1.job4
  120.  
  121. [INFO] 02 二月 01:28:15.004 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.examples.example2.SimpleJob]
  122. SimpleJob says: group1.job2 executing at Tue Feb 02 13:28:15 CST 2016
  123.  
  124. [INFO] 02 二月 01:28:15.007 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.examples.example2.SimpleJob]
  125. SimpleJob says: group1.job4 executing at Tue Feb 02 13:28:15 CST 2016
  126.  
  127. [DEBUG] 02 二月 01:28:15.006 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  128. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  129.  
  130. [DEBUG] 02 二月 01:28:15.006 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.core.JobRunShell]
  131. Calling execute on job group1.job6
  132.  
  133. [DEBUG] 02 二月 01:28:15.008 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  134. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  135.  
  136. [DEBUG] 02 二月 01:28:15.008 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.core.JobRunShell]
  137. Calling execute on job group1.job7
  138.  
  139. [DEBUG] 02 二月 01:28:15.010 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.core.JobRunShell]
  140. Calling execute on job group1.job3
  141.  
  142. [INFO] 02 二月 01:28:15.009 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.examples.example2.SimpleJob]
  143. SimpleJob says: group1.job6 executing at Tue Feb 02 13:28:15 CST 2016
  144.  
  145. [INFO] 02 二月 01:28:15.011 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.examples.example2.SimpleJob]
  146. SimpleJob says: group1.job3 executing at Tue Feb 02 13:28:15 CST 2016
  147.  
  148. [INFO] 02 二月 01:28:15.010 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.examples.example2.SimpleJob]
  149. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:15 CST 2016
  150.  
  151. [DEBUG] 02 二月 01:28:25.000 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  152. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  153.  
  154. [DEBUG] 02 二月 01:28:25.001 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.core.JobRunShell]
  155. Calling execute on job group1.job3
  156.  
  157. [DEBUG] 02 二月 01:28:25.001 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  158. Producing instance of Job 'group1.job4', class=org.quartz.examples.example2.SimpleJob
  159.  
  160. [INFO] 02 二月 01:28:25.001 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.examples.example2.SimpleJob]
  161. SimpleJob says: group1.job3 executing at Tue Feb 02 13:28:25 CST 2016
  162.  
  163. [DEBUG] 02 二月 01:28:25.001 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.core.JobRunShell]
  164. Calling execute on job group1.job4
  165.  
  166. [INFO] 02 二月 01:28:25.017 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.examples.example2.SimpleJob]
  167. SimpleJob says: group1.job4 executing at Tue Feb 02 13:28:25 CST 2016
  168.  
  169. [INFO] 02 二月 01:28:30.818 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  170. ------- Rescheduling... --------------------
  171.  
  172. [INFO] 02 二月 01:28:30.819 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  173. job7 rescheduled to run at: Tue Feb 02 13:28:30 CST 2016
  174.  
  175. [DEBUG] 02 二月 01:28:30.819 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  176. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  177.  
  178. [INFO] 02 二月 01:28:30.820 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  179. ------- Waiting five minutes... ------------
  180.  
  181. [DEBUG] 02 二月 01:28:30.820 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.core.JobRunShell]
  182. Calling execute on job group1.job7
  183.  
  184. [INFO] 02 二月 01:28:30.821 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.examples.example2.SimpleJob]
  185. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:30 CST 2016
  186.  
  187. [DEBUG] 02 二月 01:28:31.819 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  188. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  189.  
  190. [DEBUG] 02 二月 01:28:31.819 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.core.JobRunShell]
  191. Calling execute on job group1.job7
  192.  
  193. [INFO] 02 二月 01:28:31.819 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.examples.example2.SimpleJob]
  194. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:31 CST 2016
  195.  
  196. [DEBUG] 02 二月 01:28:32.833 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  197. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  198.  
  199. [DEBUG] 02 二月 01:28:32.833 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.core.JobRunShell]
  200. Calling execute on job group1.job7
  201.  
  202. [INFO] 02 二月 01:28:32.833 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.examples.example2.SimpleJob]
  203. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:32 CST 2016
  204.  
  205. [DEBUG] 02 二月 01:28:33.820 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  206. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  207.  
  208. [DEBUG] 02 二月 01:28:33.820 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.core.JobRunShell]
  209. Calling execute on job group1.job7
  210.  
  211. [INFO] 02 二月 01:28:33.821 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.examples.example2.SimpleJob]
  212. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:33 CST 2016
  213.  
  214. [DEBUG] 02 二月 01:28:34.828 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  215. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  216.  
  217. [DEBUG] 02 二月 01:28:34.829 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.core.JobRunShell]
  218. Calling execute on job group1.job7
  219.  
  220. [INFO] 02 二月 01:28:34.829 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.examples.example2.SimpleJob]
  221. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:34 CST 2016
  222.  
  223. [DEBUG] 02 二月 01:28:35.001 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  224. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  225.  
  226. [DEBUG] 02 二月 01:28:35.018 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.core.JobRunShell]
  227. Calling execute on job group1.job3
  228.  
  229. [DEBUG] 02 二月 01:28:35.018 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  230. Producing instance of Job 'group1.job4', class=org.quartz.examples.example2.SimpleJob
  231.  
  232. [INFO] 02 二月 01:28:35.018 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.examples.example2.SimpleJob]
  233. SimpleJob says: group1.job3 executing at Tue Feb 02 13:28:35 CST 2016
  234.  
  235. [DEBUG] 02 二月 01:28:35.019 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.core.JobRunShell]
  236. Calling execute on job group1.job4
  237.  
  238. [INFO] 02 二月 01:28:35.019 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.examples.example2.SimpleJob]
  239. SimpleJob says: group1.job4 executing at Tue Feb 02 13:28:35 CST 2016
  240.  
  241. [DEBUG] 02 二月 01:28:35.819 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  242. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  243.  
  244. [DEBUG] 02 二月 01:28:35.820 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.core.JobRunShell]
  245. Calling execute on job group1.job7
  246.  
  247. [INFO] 02 二月 01:28:35.820 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.examples.example2.SimpleJob]
  248. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:35 CST 2016
  249.  
  250. [DEBUG] 02 二月 01:28:36.821 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  251. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  252.  
  253. [DEBUG] 02 二月 01:28:36.822 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.core.JobRunShell]
  254. Calling execute on job group1.job7
  255.  
  256. [INFO] 02 二月 01:28:36.822 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.examples.example2.SimpleJob]
  257. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:36 CST 2016
  258.  
  259. [DEBUG] 02 二月 01:28:37.820 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  260. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  261.  
  262. [DEBUG] 02 二月 01:28:37.820 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.core.JobRunShell]
  263. Calling execute on job group1.job7
  264.  
  265. [INFO] 02 二月 01:28:37.821 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.examples.example2.SimpleJob]
  266. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:37 CST 2016
  267.  
  268. [DEBUG] 02 二月 01:28:38.834 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  269. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  270.  
  271. [DEBUG] 02 二月 01:28:38.834 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.core.JobRunShell]
  272. Calling execute on job group1.job7
  273.  
  274. [INFO] 02 二月 01:28:38.834 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.examples.example2.SimpleJob]
  275. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:38 CST 2016
  276.  
  277. [DEBUG] 02 二月 01:28:39.820 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  278. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  279.  
  280. [DEBUG] 02 二月 01:28:39.820 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.core.JobRunShell]
  281. Calling execute on job group1.job7
  282.  
  283. [INFO] 02 二月 01:28:39.821 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.examples.example2.SimpleJob]
  284. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:39 CST 2016
  285.  
  286. [DEBUG] 02 二月 01:28:40.831 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  287. Producing instance of Job 'group1.job7', class=org.quartz.examples.example2.SimpleJob
  288.  
  289. [DEBUG] 02 二月 01:28:40.832 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.core.JobRunShell]
  290. Calling execute on job group1.job7
  291.  
  292. [INFO] 02 二月 01:28:40.832 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.examples.example2.SimpleJob]
  293. SimpleJob says: group1.job7 executing at Tue Feb 02 13:28:40 CST 2016
  294.  
  295. [DEBUG] 02 二月 01:28:45.014 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  296. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  297.  
  298. [DEBUG] 02 二月 01:28:45.015 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.core.JobRunShell]
  299. Calling execute on job group1.job3
  300.  
  301. [DEBUG] 02 二月 01:28:45.015 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  302. Producing instance of Job 'group1.job4', class=org.quartz.examples.example2.SimpleJob
  303.  
  304. [INFO] 02 二月 01:28:45.015 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.examples.example2.SimpleJob]
  305. SimpleJob says: group1.job3 executing at Tue Feb 02 13:28:45 CST 2016
  306.  
  307. [DEBUG] 02 二月 01:28:45.016 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.core.JobRunShell]
  308. Calling execute on job group1.job4
  309.  
  310. [INFO] 02 二月 01:28:45.017 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.examples.example2.SimpleJob]
  311. SimpleJob says: group1.job4 executing at Tue Feb 02 13:28:45 CST 2016
  312.  
  313. [DEBUG] 02 二月 01:28:55.000 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  314. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  315.  
  316. [DEBUG] 02 二月 01:28:55.000 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.core.JobRunShell]
  317. Calling execute on job group1.job3
  318.  
  319. [DEBUG] 02 二月 01:28:55.000 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  320. Producing instance of Job 'group1.job4', class=org.quartz.examples.example2.SimpleJob
  321.  
  322. [INFO] 02 二月 01:28:55.001 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.examples.example2.SimpleJob]
  323. SimpleJob says: group1.job3 executing at Tue Feb 02 13:28:55 CST 2016
  324.  
  325. [DEBUG] 02 二月 01:28:55.002 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.core.JobRunShell]
  326. Calling execute on job group1.job4
  327.  
  328. [INFO] 02 二月 01:28:55.003 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.examples.example2.SimpleJob]
  329. SimpleJob says: group1.job4 executing at Tue Feb 02 13:28:55 CST 2016
  330.  
  331. [DEBUG] 02 二月 01:29:05.001 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  332. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  333.  
  334. [DEBUG] 02 二月 01:29:05.001 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.core.JobRunShell]
  335. Calling execute on job group1.job3
  336.  
  337. [DEBUG] 02 二月 01:29:05.001 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  338. Producing instance of Job 'group1.job4', class=org.quartz.examples.example2.SimpleJob
  339.  
  340. [INFO] 02 二月 01:29:05.001 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.examples.example2.SimpleJob]
  341. SimpleJob says: group1.job3 executing at Tue Feb 02 13:29:05 CST 2016
  342.  
  343. [DEBUG] 02 二月 01:29:05.002 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.core.JobRunShell]
  344. Calling execute on job group1.job4
  345.  
  346. [DEBUG] 02 二月 01:29:05.002 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  347. Producing instance of Job 'group1.job6', class=org.quartz.examples.example2.SimpleJob
  348.  
  349. [INFO] 02 二月 01:29:05.002 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.examples.example2.SimpleJob]
  350. SimpleJob says: group1.job4 executing at Tue Feb 02 13:29:05 CST 2016
  351.  
  352. [DEBUG] 02 二月 01:29:05.003 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.core.JobRunShell]
  353. Calling execute on job group1.job6
  354.  
  355. [INFO] 02 二月 01:29:05.003 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.examples.example2.SimpleJob]
  356. SimpleJob says: group1.job6 executing at Tue Feb 02 13:29:05 CST 2016
  357.  
  358. [DEBUG] 02 二月 01:29:15.000 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  359. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  360.  
  361. [DEBUG] 02 二月 01:29:15.001 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.core.JobRunShell]
  362. Calling execute on job group1.job3
  363.  
  364. [INFO] 02 二月 01:29:15.001 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.examples.example2.SimpleJob]
  365. SimpleJob says: group1.job3 executing at Tue Feb 02 13:29:15 CST 2016
  366.  
  367. [DEBUG] 02 二月 01:29:25.000 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  368. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  369.  
  370. [DEBUG] 02 二月 01:29:25.000 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.core.JobRunShell]
  371. Calling execute on job group1.job3
  372.  
  373. [DEBUG] 02 二月 01:29:25.001 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  374. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  375.  
  376. [INFO] 02 二月 01:29:25.001 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.examples.example2.SimpleJob]
  377. SimpleJob says: group1.job3 executing at Tue Feb 02 13:29:25 CST 2016
  378.  
  379. [DEBUG] 02 二月 01:29:25.002 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.core.JobRunShell]
  380. Calling execute on job group1.job3
  381.  
  382. [INFO] 02 二月 01:29:25.003 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.examples.example2.SimpleJob]
  383. SimpleJob says: group1.job3 executing at Tue Feb 02 13:29:25 CST 2016
  384.  
  385. [DEBUG] 02 二月 01:29:35.008 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  386. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  387.  
  388. [DEBUG] 02 二月 01:29:35.009 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.core.JobRunShell]
  389. Calling execute on job group1.job3
  390.  
  391. [INFO] 02 二月 01:29:35.010 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.examples.example2.SimpleJob]
  392. SimpleJob says: group1.job3 executing at Tue Feb 02 13:29:35 CST 2016
  393.  
  394. [DEBUG] 02 二月 01:29:45.012 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  395. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  396.  
  397. [DEBUG] 02 二月 01:29:45.012 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.core.JobRunShell]
  398. Calling execute on job group1.job3
  399.  
  400. [INFO] 02 二月 01:29:45.012 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.examples.example2.SimpleJob]
  401. SimpleJob says: group1.job3 executing at Tue Feb 02 13:29:45 CST 2016
  402.  
  403. [DEBUG] 02 二月 01:29:55.000 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  404. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  405.  
  406. [DEBUG] 02 二月 01:29:55.001 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  407. Producing instance of Job 'group1.job6', class=org.quartz.examples.example2.SimpleJob
  408.  
  409. [DEBUG] 02 二月 01:29:55.001 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.core.JobRunShell]
  410. Calling execute on job group1.job3
  411.  
  412. [DEBUG] 02 二月 01:29:55.001 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.core.JobRunShell]
  413. Calling execute on job group1.job6
  414.  
  415. [INFO] 02 二月 01:29:55.001 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.examples.example2.SimpleJob]
  416. SimpleJob says: group1.job3 executing at Tue Feb 02 13:29:55 CST 2016
  417.  
  418. [INFO] 02 二月 01:29:55.001 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.examples.example2.SimpleJob]
  419. SimpleJob says: group1.job6 executing at Tue Feb 02 13:29:55 CST 2016
  420.  
  421. [DEBUG] 02 二月 01:30:35.000 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  422. Producing instance of Job 'group1.job3', class=org.quartz.examples.example2.SimpleJob
  423.  
  424. [DEBUG] 02 二月 01:30:35.001 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.core.JobRunShell]
  425. Calling execute on job group1.job3
  426.  
  427. [INFO] 02 二月 01:30:35.001 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.examples.example2.SimpleJob]
  428. SimpleJob says: group1.job3 executing at Tue Feb 02 13:30:35 CST 2016
  429.  
  430. [DEBUG] 02 二月 01:30:45.000 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  431. Producing instance of Job 'group1.job6', class=org.quartz.examples.example2.SimpleJob
  432.  
  433. [DEBUG] 02 二月 01:30:45.001 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.core.JobRunShell]
  434. Calling execute on job group1.job6
  435.  
  436. [INFO] 02 二月 01:30:45.001 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.examples.example2.SimpleJob]
  437. SimpleJob says: group1.job6 executing at Tue Feb 02 13:30:45 CST 2016
  438.  
  439. [DEBUG] 02 二月 01:31:35.000 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  440. Producing instance of Job 'group1.job6', class=org.quartz.examples.example2.SimpleJob
  441.  
  442. [DEBUG] 02 二月 01:31:35.001 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.core.JobRunShell]
  443. Calling execute on job group1.job6
  444.  
  445. [INFO] 02 二月 01:31:35.001 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.examples.example2.SimpleJob]
  446. SimpleJob says: group1.job6 executing at Tue Feb 02 13:31:35 CST 2016
  447.  
  448. [DEBUG] 02 二月 01:32:25.000 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  449. Producing instance of Job 'group1.job6', class=org.quartz.examples.example2.SimpleJob
  450.  
  451. [DEBUG] 02 二月 01:32:25.000 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.core.JobRunShell]
  452. Calling execute on job group1.job6
  453.  
  454. [INFO] 02 二月 01:32:25.001 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.examples.example2.SimpleJob]
  455. SimpleJob says: group1.job6 executing at Tue Feb 02 13:32:25 CST 2016
  456.  
  457. [DEBUG] 02 二月 01:33:15.001 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  458. Producing instance of Job 'group1.job5', class=org.quartz.examples.example2.SimpleJob
  459.  
  460. [DEBUG] 02 二月 01:33:15.002 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.core.JobRunShell]
  461. Calling execute on job group1.job5
  462.  
  463. [DEBUG] 02 二月 01:33:15.002 下午 DefaultQuartzScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
  464. Producing instance of Job 'group1.job6', class=org.quartz.examples.example2.SimpleJob
  465.  
  466. [INFO] 02 二月 01:33:15.002 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.examples.example2.SimpleJob]
  467. SimpleJob says: group1.job5 executing at Tue Feb 02 13:33:15 CST 2016
  468.  
  469. [DEBUG] 02 二月 01:33:15.003 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.core.JobRunShell]
  470. Calling execute on job group1.job6
  471.  
  472. [INFO] 02 二月 01:33:15.004 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.examples.example2.SimpleJob]
  473. SimpleJob says: group1.job6 executing at Tue Feb 02 13:33:15 CST 2016
  474.  
  475. [INFO] 02 二月 01:33:30.824 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  476. ------- Shutting Down ---------------------
  477.  
  478. [INFO] 02 二月 01:33:30.824 下午 main [org.quartz.core.QuartzScheduler]
  479. Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutting down.
  480.  
  481. [INFO] 02 二月 01:33:30.825 下午 main [org.quartz.core.QuartzScheduler]
  482. Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED paused.
  483.  
  484. [DEBUG] 02 二月 01:33:30.825 下午 main [org.quartz.simpl.SimpleThreadPool]
  485. shutdown complete
  486.  
  487. [INFO] 02 二月 01:33:30.826 下午 main [org.quartz.core.QuartzScheduler]
  488. Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutdown complete.
  489.  
  490. [INFO] 02 二月 01:33:30.826 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  491. ------- Shutdown Complete -----------------
  492.  
  493. [INFO] 02 二月 01:33:30.827 下午 main [org.quartz.examples.example2.SimpleTriggerExample]
  494. Executed 43 jobs.
  495.  
  496. [DEBUG] 02 二月 01:33:30.978 下午 DefaultQuartzScheduler_Worker-1 [org.quartz.simpl.SimpleThreadPool]
  497. WorkerThread is shut down.
  498.  
  499. [DEBUG] 02 二月 01:33:31.027 下午 DefaultQuartzScheduler_Worker-7 [org.quartz.simpl.SimpleThreadPool]
  500. WorkerThread is shut down.
  501.  
  502. [DEBUG] 02 二月 01:33:31.027 下午 DefaultQuartzScheduler_Worker-6 [org.quartz.simpl.SimpleThreadPool]
  503. WorkerThread is shut down.
  504.  
  505. [DEBUG] 02 二月 01:33:31.027 下午 DefaultQuartzScheduler_Worker-9 [org.quartz.simpl.SimpleThreadPool]
  506. WorkerThread is shut down.
  507.  
  508. [DEBUG] 02 二月 01:33:31.027 下午 DefaultQuartzScheduler_Worker-5 [org.quartz.simpl.SimpleThreadPool]
  509. WorkerThread is shut down.
  510.  
  511. [DEBUG] 02 二月 01:33:31.027 下午 DefaultQuartzScheduler_Worker-3 [org.quartz.simpl.SimpleThreadPool]
  512. WorkerThread is shut down.
  513.  
  514. [DEBUG] 02 二月 01:33:31.027 下午 DefaultQuartzScheduler_Worker-8 [org.quartz.simpl.SimpleThreadPool]
  515. WorkerThread is shut down.
  516.  
  517. [DEBUG] 02 二月 01:33:31.118 下午 DefaultQuartzScheduler_Worker-2 [org.quartz.simpl.SimpleThreadPool]
  518. WorkerThread is shut down.
  519.  
  520. [DEBUG] 02 二月 01:33:31.118 下午 DefaultQuartzScheduler_Worker-4 [org.quartz.simpl.SimpleThreadPool]
  521. WorkerThread is shut down.
  522.  
  523. [DEBUG] 02 二月 01:33:31.233 下午 DefaultQuartzScheduler_Worker-10 [org.quartz.simpl.SimpleThreadPool]
  524. WorkerThread is shut down.

  

 

从这个例子中我们看到JobDetail对象是可以重复利用的,Trigger对象也是,原因在哪里?

看源代码就可以发现,真正放置进入RAMJobStore存储的都是他们的拷贝对象

  1. public void storeJob(SchedulingContext ctxt, JobDetail newJob,
  2. boolean replaceExisting) throws ObjectAlreadyExistsException {
  3. JobWrapper jw = new JobWrapper((JobDetail)newJob.clone());
  4.  
  5. boolean repl = false;
  6.  
  7. synchronized (lock) {
  8. if (jobsByFQN.get(jw.key) != null) {
  9. if (!replaceExisting) {
  10. throw new ObjectAlreadyExistsException(newJob);
  11. }
  12. repl = true;
  13. }
  14.  
  15. if (!repl) {
  16. // get job group
  17. HashMap grpMap = (HashMap) jobsByGroup.get(newJob.getGroup());
  18. if (grpMap == null) {
  19. grpMap = new HashMap(100);
  20. jobsByGroup.put(newJob.getGroup(), grpMap);
  21. }
  22. // add to jobs by group
  23. grpMap.put(newJob.getName(), jw);
  24. // add to jobs by FQN map
  25. jobsByFQN.put(jw.key, jw);
  26. } else {
  27. // update job detail
  28. JobWrapper orig = (JobWrapper) jobsByFQN.get(jw.key);
  29. orig.jobDetail = jw.jobDetail; // already cloned
  30. }
  31. }
  32. }
  33.  
  34. /**
  35. * <p>
  36. * Store the given <code>{@link org.quartz.Trigger}</code>.
  37. * </p>
  38. *
  39. * @param newTrigger
  40. * The <code>Trigger</code> to be stored.
  41. * @param replaceExisting
  42. * If <code>true</code>, any <code>Trigger</code> existing in
  43. * the <code>JobStore</code> with the same name & group should
  44. * be over-written.
  45. * @throws ObjectAlreadyExistsException
  46. * if a <code>Trigger</code> with the same name/group already
  47. * exists, and replaceExisting is set to false.
  48. *
  49. * @see #pauseTriggerGroup(SchedulingContext, String)
  50. */
  51. public void storeTrigger(SchedulingContext ctxt, Trigger newTrigger,
  52. boolean replaceExisting) throws JobPersistenceException {
  53. TriggerWrapper tw = new TriggerWrapper((Trigger)newTrigger.clone());
  54.  
  55. synchronized (lock) {
  56. if (triggersByFQN.get(tw.key) != null) {
  57. if (!replaceExisting) {
  58. throw new ObjectAlreadyExistsException(newTrigger);
  59. }
  60.  
  61. removeTrigger(ctxt, newTrigger.getName(), newTrigger.getGroup(), false);
  62. }
  63.  
  64. if (retrieveJob(ctxt, newTrigger.getJobName(), newTrigger.getJobGroup()) == null) {
  65. throw new JobPersistenceException("The job ("
  66. + newTrigger.getFullJobName()
  67. + ") referenced by the trigger does not exist.");
  68. }
  69.  
  70. // add to triggers array
  71. triggers.add(tw);
  72. // add to triggers by group
  73. HashMap grpMap = (HashMap) triggersByGroup.get(newTrigger
  74. .getGroup());
  75. if (grpMap == null) {
  76. grpMap = new HashMap(100);
  77. triggersByGroup.put(newTrigger.getGroup(), grpMap);
  78. }
  79. grpMap.put(newTrigger.getName(), tw);
  80. // add to triggers by FQN map
  81. triggersByFQN.put(tw.key, tw);
  82.  
  83. if (pausedTriggerGroups.contains(newTrigger.getGroup())
  84. || pausedJobGroups.contains(newTrigger.getJobGroup())) {
  85. tw.state = TriggerWrapper.STATE_PAUSED;
  86. if (blockedJobs.contains(tw.jobKey)) {
  87. tw.state = TriggerWrapper.STATE_PAUSED_BLOCKED;
  88. }
  89. } else if (blockedJobs.contains(tw.jobKey)) {
  90. tw.state = TriggerWrapper.STATE_BLOCKED;
  91. } else {
  92. timeTriggers.add(tw);
  93. }
  94. }
  95. }

  

Quartz1.8.5例子(二)的更多相关文章

  1. scrapy-splash抓取动态数据例子二

    一.介绍 本例子用scrapy-splash抓取一点资讯网站给定关键字抓取咨询信息. 给定关键字:打通:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信 ...

  2. Python例子二

    例1.构造函数 #-*-coding:utf--*- import sys class Student: def __init__(self,name,age): self.__name=name s ...

  3. go例子(二) 使用go语言实现数独游戏

    例子托管于github example.go package main import (     "./sudoku" ) func main() {     //var smap ...

  4. 从零开始学习Node.js例子二 文本提交与显示

    index.js var server = require("./server"); var router = require("./router"); var ...

  5. Flexigrid例子二: 原位编辑器

    有时候,我们想要编辑flexigrid里的数据.一个原位编辑器是需要的,现在不需要再弹出一个对话框了.这里我会展示如何做到这点. 我使用了jquery-in-place-editor库.请参考官方站点 ...

  6. Quartz1.8.5例子(十四)

    org.quartz.scheduler.instanceName: PriorityExampleScheduler # Set thread count to 1 to force Trigger ...

  7. Quartz1.8.5例子(十一)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

  8. Quartz1.8.5例子(十)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

  9. Quartz1.8.5例子(九)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

随机推荐

  1. PowerShell自定义对象

    前面的性能高 使用[pscustomobject][ordered]强制类型转换 [pscustomobject][ordered]@{Name= 'Boe'Number = 1ID = 007} 使 ...

  2. PAT---1013. Battle Over Cities (25)

    这道题目的意思是:在战争时代,如果一个城市被敌人占领了,那么和该城市相连的道路都必须关闭,我们必须把剩下的城市(即不包括被敌人占领的城市)连接起来. 举个例子,我们有3个城市,C1,C2,C3,C1和 ...

  3. C#调用java接口报“Fault occurred while processing”异常问题

    服务在通常项目中总是要用到的C#的webservice.wcf,还有第三方的,比如java服务.一般来说调用都不会有什么问题,因为服务的标准都是一样的.要注意的就是:1.参数个数匹配:2.参数类型和返 ...

  4. LabVIEW系列——自定义错误

    1.自定义错误代码文本文件在labview中三处:      a).E:\Program Files\National Instruments\LabVIEW 8.6\project\errors   ...

  5. linux 进程综合指令

    1. 查询当前机器运行的进程总数: ps -ef | wc -l ps -ef | grep httpd | wc -l 2. ulimit命令 表 1. ulimit 参数说明 选项 [option ...

  6. 查找字符串(C++实现)

    查找字符串(C++实现),不使用库函数: // SubString.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include < ...

  7. Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist

    使用 composer 安装 laravel 时报错, 如下: [ReflectionException] Class Fxp\Composer\AssetPlugin\Repository\NpmR ...

  8. jQuery模拟页面加载进度条

    因为我们无法通过任何方法获取整个页面的大小和当前加载了多少,所以想制作一个加载进度条的唯一办法就是模拟.那要怎么模拟呢? 我们知道,页面是从上往下执行的,也就是说我们可以大致估算出在页面的某个位置加载 ...

  9. Android - 服务器json数据交互.

    一,服务器端 服务器端使用的是Servlet,封装json对象使用的 'json-lib-2.2.2-jdk15.jar,ezmorph-1.0.4.jar,commons-logging-1.1.j ...

  10. 2.RABBITMQ 入门 - WINDOWS - 生产和消费消息 一个完整案例

    关于安装和配置,见上一篇 1.RABBITMQ 入门 - WINDOWS - 获取,安装,配置 公司有需求,要求使用winform开发这个东西(消息中间件),另外还要求开发一个日志中间件,但是也是要求 ...