1 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.apache.commons.logging.LogFactory; 31 import org.apache.commons.logging.Log; 32 33 39 public class SimpleTriggerExample { 40 41 42 public void run() throws Exception { 43 Log log = LogFactory.getLog(SimpleTriggerExample.class); 44 45 log.info("------- Initializing -------------------"); 46 47 SchedulerFactory sf = new StdSchedulerFactory(); 49 Scheduler sched = sf.getScheduler(); 50 51 log.info("------- Initialization Complete --------"); 52 53 log.info("------- Scheduling Jobs ----------------"); 54 55 57 long ts = TriggerUtils.getNextGivenSecondDate(null, 15).getTime(); 59 60 JobDetail job = new JobDetail("job1", "group1", SimpleJob.class); 62 SimpleTrigger trigger = 63 new SimpleTrigger("trigger1", "group1", new Date (ts)); 64 65 Date ft = sched.scheduleJob(job, trigger); 67 log.info(job.getFullName() + 68 " will run at: " + ft + 69 " and repeat: " + trigger.getRepeatCount() + 70 " times, every " + trigger.getRepeatInterval() / 1000 + " seconds"); 71 72 job = new JobDetail("job2", "group1", SimpleJob.class); 74 trigger = new SimpleTrigger("trigger2", "group1", "job2", "group1", 75 new Date (ts), null, 0, 0); 76 ft = sched.scheduleJob(job, trigger); 77 log.info(job.getFullName() + 78 " will run at: " + ft + 79 " and repeat: " + trigger.getRepeatCount() + 80 " times, every " + trigger.getRepeatInterval() / 1000 + " seconds"); 81 82 job = new JobDetail("job3", "group1", SimpleJob.class); 85 trigger = new SimpleTrigger("trigger3", "group1", "job3", "group1", 86 new Date (ts), null, 10, 10000L); 87 ft = sched.scheduleJob(job, trigger); 88 log.info(job.getFullName() + 89 " will run at: " + ft + 90 " and repeat: " + trigger.getRepeatCount() + 91 " times, every " + trigger.getRepeatInterval() / 1000 + " seconds"); 92 93 trigger = new SimpleTrigger("trigger3", "group2", "job3", "group1", 96 new Date (ts), null, 2, 70000L); 97 ft = sched.scheduleJob(trigger); 98 log.info(job.getFullName() + 99 " will [also] run at: " + ft + 100 " and repeat: " + trigger.getRepeatCount() + 101 " times, every " + trigger.getRepeatInterval() / 1000 + " seconds"); 102 103 job = new JobDetail("job4", "group1", SimpleJob.class); 106 trigger = new SimpleTrigger("trigger4", "group1", "job4", "group1", 107 new Date (ts), null, 5, 10000L); 108 ft = sched.scheduleJob(job, trigger); 109 log.info(job.getFullName() + 110 " will run at: " + ft + 111 " and repeat: " + trigger.getRepeatCount() + 112 " times, every " + trigger.getRepeatInterval() / 1000 + " seconds"); 113 114 job = new JobDetail("job5", "group1", SimpleJob.class); 116 trigger = new SimpleTrigger("trigger5", "group1", "job5", "group1", 117 new Date (ts + 300000L), null, 0, 0); 118 ft = sched.scheduleJob(job, trigger); 119 log.info(job.getFullName() + 120 " will run at: " + ft + 121 " and repeat: " + trigger.getRepeatCount() + 122 " times, every " + trigger.getRepeatInterval() / 1000 + " seconds"); 123 124 job = new JobDetail("job6", "group1", SimpleJob.class); 126 trigger = new SimpleTrigger("trigger6", "group1", "job6", "group1", 127 new Date (ts), null, SimpleTrigger.REPEAT_INDEFINITELY, 50000L); 128 ft = sched.scheduleJob(job, trigger); 129 log.info(job.getFullName() + 130 " will run at: " + ft + 131 " and repeat: " + trigger.getRepeatCount() + 132 " times, every " + trigger.getRepeatInterval() / 1000 + " seconds"); 133 134 log.info("------- Starting Scheduler ----------------"); 135 136 sched.start(); 139 140 log.info("------- Started Scheduler -----------------"); 141 142 job = new JobDetail("job7", "group1", SimpleJob.class); 145 trigger = new SimpleTrigger("trigger7", "group1", "job7", "group1", 146 new Date (ts), null, 20, 300000L); 147 ft = sched.scheduleJob(job, trigger); 148 log.info(job.getFullName() + 149 " will run at: " + ft + 150 " and repeat: " + trigger.getRepeatCount() + 151 " times, every " + trigger.getRepeatInterval() / 1000 + " seconds"); 152 153 job = new JobDetail("job8", "group1", SimpleJob.class); 155 job.setDurability(true); 156 sched.addJob(job, true); 157 log.info("'Manually' triggering job8..."); 158 sched.triggerJob("job8", "group1"); 159 160 log.info("------- Waiting 30 seconds... --------------"); 161 162 try { 163 Thread.sleep(30L * 1000L); 165 } catch (Exception e) { 167 } 168 169 log.info("------- Rescheduling... --------------------"); 172 trigger = new SimpleTrigger("trigger7", "group1", "job7", "group1", 173 new Date (), null, 10, 1000L); 174 ft = sched.rescheduleJob("trigger7", "group1", trigger); 175 log.info("job7 rescheduled to run at: " + ft); 176 177 log.info("------- Waiting five minutes... ------------"); 178 try { 179 Thread.sleep(300L * 1000L); 181 } catch (Exception e) { 183 } 184 185 log.info("------- Shutting Down ---------------------"); 186 187 sched.shutdown(true); 188 189 log.info("------- Shutdown Complete -----------------"); 190 191 SchedulerMetaData metaData = sched.getMetaData(); 193 log.info("Executed " + metaData.numJobsExecuted() + " jobs."); 194 195 } 196 197 public static void main(String [] args) throws Exception { 198 199 SimpleTriggerExample example = new SimpleTriggerExample(); 200 example.run(); 201 202 } 203 204 } | Popular Tags |