Quartz调度程序-HELP NEEDED

时间:2012-02-29 07:11:30

标签: java quartz-scheduler

我有以下要求。

我必须在开始结束日期之间启动3-4个调度程序,这些调度程序的计时是上午9点,下午1点,下午5点,晚上10点。这些开始和结束日期各不相同。例如:我必须在1月5日至10日之间启动3个调度程序,而另一个可能是1月13日至17日。所以这些日期可能会有所不同。但是如上所述,这些日期的时间安排是固定的。但唯一的问题是我可能需要在当天上午9点和下午1点安排工作,而在另一天的晚上10点安排工作,依此类推。所以次数各不相同。

任何人都可以建议我可以使用哪个工作和触发器。是否可以为此安排一个调度程序?

1 个答案:

答案 0 :(得分:3)

这应该足以让你开始:

import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.triggers.AbstractTrigger;

import java.util.Calendar;

import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.DateBuilder.dateOf;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;

//...

AbstractTrigger trigger = (AbstractTrigger) newTrigger()
        .withSchedule(cronSchedule("0 0 9,13,17,22 * * ?"))
        .build();
trigger.setStartTime(dateOf(0, 0, 0, 13, Calendar.JANUARY, 2012));
trigger.setEndTime(dateOf(0, 0, 0, 17, Calendar.JANUARY, 2012));

final JobDetail job = newJob(Job.class).build();

scheduler.scheduleJob(job, trigger);

有关详细信息,请参阅文档中的官方Lesson 6: CronTrigger

相关问题