package com.github.signed.sandboxe.quartz; import com.github.signed.sandboxe.quartz.domain.SleepingJob; import org.quartz.JobBuilder; import org.quartz.JobDataMap; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SimpleScheduleBuilder; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import static org.quartz.SimpleScheduleBuilder.simpleSchedule; public class ProductionPlan implements Plan { @Override public void beforeSchedulerStarts(Scheduler scheduler) throws SchedulerException { JobDetail job = JobBuilder.newJob(SleepingJob.class) .withIdentity("sleep-job") .usingJobData(jobData()) .build(); SimpleScheduleBuilder schedule = simpleSchedule() .withIntervalInMilliseconds(5 * 1000l) .repeatForever(); Trigger trigger = TriggerBuilder.newTrigger() .withIdentity("sleep-trigger") .startNow() .withSchedule(schedule) .build(); scheduler.scheduleJob(job, trigger); } private JobDataMap jobData() { JobDataMap jobDataMap = new JobDataMap(); jobDataMap.put("greeting", "production"); return jobDataMap; } @Override public void afterSchedulerStarted(Scheduler scheduler) { //nothing to do } }