private void scheduleAllJobsWithOnAnnotation() throws SchedulerException { List<Class<? extends Job>> onJobClasses = getJobClasses(On.class); log.info("Jobs with @On annotation: " + onJobClasses); for (Class<? extends org.quartz.Job> clazz : onJobClasses) { On annotation = clazz.getAnnotation(On.class); CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(annotation.value()); Trigger trigger = TriggerBuilder.newTrigger().withSchedule(scheduleBuilder).build(); JobBuilder jobBuilder = JobBuilder.newJob(clazz); scheduler.scheduleJob(jobBuilder.build(), trigger); } }
private void scheduleAllJobsWithEveryAnnotation() throws SchedulerException { List<Class<? extends Job>> everyJobClasses = getJobClasses(Every.class); log.info("Jobs with @Every annotation: " + everyJobClasses); for (Class<? extends org.quartz.Job> clazz : everyJobClasses) { Every annotation = clazz.getAnnotation(Every.class); int secondDelay = TimeParserUtil.parseDuration(annotation.value()); SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(secondDelay).repeatForever(); Trigger trigger = TriggerBuilder.newTrigger().withSchedule(scheduleBuilder).build(); JobBuilder jobBuilder = JobBuilder.newJob(clazz); scheduler.scheduleJob(jobBuilder.build(), trigger); } }