1 17 18 package org.quartz.examples.example8; 19 20 import java.util.Calendar ; 21 import java.util.Date ; 22 import java.util.GregorianCalendar ; 23 24 import org.quartz.JobDetail; 25 import org.quartz.Scheduler; 26 import org.quartz.SchedulerFactory; 27 import org.quartz.SchedulerMetaData; 28 import org.quartz.SimpleTrigger; 29 import org.quartz.examples.example2.SimpleJob; 30 import org.quartz.TriggerUtils; 31 import org.quartz.impl.StdSchedulerFactory; 32 import org.quartz.impl.calendar.AnnualCalendar; 33 import org.apache.commons.logging.LogFactory; 34 import org.apache.commons.logging.Log; 35 36 42 public class CalendarExample { 43 44 public void run() throws Exception { 45 final Log log = LogFactory.getLog(CalendarExample.class); 46 47 log.info("------- Initializing ----------------------"); 48 49 SchedulerFactory sf = new StdSchedulerFactory(); 51 Scheduler sched = sf.getScheduler(); 52 53 log.info("------- Initialization Complete -----------"); 54 55 log.info("------- Scheduling Jobs -------------------"); 56 57 AnnualCalendar holidays = new AnnualCalendar(); 59 60 Calendar fourthOfJuly = new GregorianCalendar (2005, 6, 4); 62 holidays.setDayExcluded(fourthOfJuly, true); 63 Calendar halloween = new GregorianCalendar (2005, 9, 31); 65 holidays.setDayExcluded(halloween, true); 66 Calendar christmas = new GregorianCalendar (2005, 11, 25); 68 holidays.setDayExcluded(christmas, true); 69 70 sched.addCalendar("holidays", holidays, false, false); 72 73 74 Date runDate = TriggerUtils.getDateOf(0,0, 10, 31, 10); 77 JobDetail job = new JobDetail("job1", "group1", SimpleJob.class); 78 SimpleTrigger trigger = new SimpleTrigger("trigger1", "group1", 79 runDate, 80 null, 81 SimpleTrigger.REPEAT_INDEFINITELY, 82 60L * 60L * 1000L); 83 trigger.setCalendarName("holidays"); 85 86 Date firstRunTime = sched.scheduleJob(job, trigger); 88 89 log.info(job.getFullName() + 93 " will run at: " + firstRunTime + 94 " and repeat: " + trigger.getRepeatCount() + 95 " times, every " + trigger.getRepeatInterval() / 1000 + " seconds"); 96 97 log.info("------- Starting Scheduler ----------------"); 100 sched.start(); 101 102 log.info("------- Waiting 30 seconds... --------------"); 105 try { 106 Thread.sleep(30L * 1000L); 108 } catch (Exception e) { 110 } 111 112 113 log.info("------- Shutting Down ---------------------"); 115 sched.shutdown(true); 116 log.info("------- Shutdown Complete -----------------"); 117 118 SchedulerMetaData metaData = sched.getMetaData(); 119 log.info("Executed " + metaData.numJobsExecuted() + " jobs."); 120 121 } 122 123 public static void main(String [] args) throws Exception { 124 125 CalendarExample example = new CalendarExample(); 126 example.run(); 127 } 128 129 } | Popular Tags |