1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| import org.quartz.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;
@Component public class JobManager {
@Autowired private Scheduler scheduler;
public void addJob(String jobName, String jobGroup, String cronExpression,String customParam) throws SchedulerException { JobDetail jobDetail = JobBuilder.newJob(MyJob.class) .withIdentity(jobName, jobGroup) .usingJobData("customParam", customParam) .build();
Trigger trigger = TriggerBuilder.newTrigger() .withIdentity(jobName, jobGroup) .withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)) .build();
scheduler.scheduleJob(jobDetail, trigger); }
public void updateJob(String jobName, String jobGroup, String cronExpression,String customParam) throws SchedulerException { TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup); CronTrigger newTrigger = TriggerBuilder.newTrigger() .withIdentity(jobName, jobGroup) .withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)) .usingJobData("customParam", customParam) .build();
scheduler.rescheduleJob(triggerKey, newTrigger); }
public void deleteJob(String jobName, String jobGroup) throws SchedulerException { JobKey jobKey = JobKey.jobKey(jobName, jobGroup); TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup);
scheduler.pauseTrigger(triggerKey); scheduler.unscheduleJob(triggerKey); scheduler.deleteJob(jobKey); } public void addOneTimeJob(String jobName, String jobGroup, Date startTime, String customParam) throws SchedulerException { Scheduler scheduler = schedulerFactoryBean.getScheduler();
Trigger trigger = TriggerBuilder.newTrigger() .withIdentity(jobName, jobGroup) .startAt(startTime) .build();
JobDetail jobDetail = JobBuilder.newJob(MyJob.class) .withIdentity(jobName, jobGroup) .usingJobData("customParam", customParam) .build();
scheduler.scheduleJob(jobDetail, trigger); } }
|