Spring Quartz Scheduler API
How to make spring quartz scheduler as the global variable
- After creating a scheduler object from Scheduler Factory make it as global access.
- So we can access scheduler from anywhere of our application.
- By using @Bean we can create scheduler object at global level.
@Bean
private Scheduler getScheduler() {
StdSchedulerFactory factory = new StdSchedulerFactory();
try {
factory.initialize(new ClassPathResource("quartz.properties").getInputStream());
return factory.getScheduler();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
- Access scheduler variable using @Autowired
@Autowired
private Scheduler scheduler;
How to delete all jobs of a spring quartz scheduler
scheduler.clear();
How to delete a particular job of a spring quartz scheduler
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("email_schedule").build();
Trigger trigger = TriggerBuilder.newTrigger().forJob(job)
.withSchedule(getScheduleBuilder(config.getScheduledTime())).build();
try {
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
e.printStackTrace();
}
Delete the job by key
JobKey jobName = JobKey.jobKey("email_schedule");
scheduler.deleteJob(jobName);
How to reschedule job of a spring quartz scheduler
scheduler.rescheduleJob(oldTriggerKey, newTriggerKey);
How to resume all jobs of a spring quartz scheduler
scheduler.resumeAll();