package hvp.spring.quartz.simpleTrigger;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.TriggerUtils;
import org.quartz.impl.StdSchedulerFactory;
import org.quartz.impl.calendar.AnnualCalendar;
public class CalendarExample

{
public void test() throws SchedulerException
{
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler scheduler = sf.getScheduler();
// 法定节日以每年为周期
AnnualCalendar holidays = new AnnualCalendar();
Calendar laborDay = new GregorianCalendar();
laborDay.add(Calendar.MONTH, 5);
laborDay.add(Calendar.DATE, 1);
// 排除
holidays.setDayExcluded(laborDay, true);
Calendar nationalDay = new GregorianCalendar();
nationalDay.add(Calendar.MONTH, 10);
nationalDay.add(Calendar.DATE, 1);
holidays.setDayExcluded(nationalDay, true);
scheduler.addCalendar("holidays", holidays, false, false);
Date runDate = TriggerUtils.getDateOf(0, 0, 10, 1, 4);
JobDetail job = new JobDetail("job", "group1", SimpleJob.class);
SimpleTrigger trigger = new SimpleTrigger("trigger1", "group1",
runDate, null, SimpleTrigger.REPEAT_INDEFINITELY,
60 * 60 * 1000);
trigger.setCalendarName("holidays");
scheduler.scheduleJob(job, trigger);
scheduler.start();
}

public static void main(String[] args) throws SchedulerException
{
CalendarExample ce = new CalendarExample();
ce.test();
}
}
本文介绍了一个使用Java Quartz调度器实现的任务调度示例,通过设置AnnualCalendar来排除特定日期如劳动节和国庆节,演示了如何配置SimpleTrigger并利用Calendar进行任务调度。
653

被折叠的 条评论
为什么被折叠?



