package com.bahadirakin; import org.quartz.JobDataMap; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.impl.JobDetailImpl; import org.quartz.impl.triggers.CronTriggerImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.text.ParseException; @Component public class SchedulerController { @Autowired Scheduler scheduler; public void addJob(DatabaseMonitor databaseMonitor) { final JobDataMap jobDataMap = new JobDataMap(); jobDataMap.put("sqlQuery", databaseMonitor.getSqlQuery()); final JobDetailImpl jobDetail = new JobDetailImpl(); jobDetail.setName(databaseMonitor.getName()); jobDetail.setDurability(true); jobDetail.setJobDataMap(jobDataMap); jobDetail.setJobClass(DatabaseJob.class); try { final CronTriggerImpl trigger = new CronTriggerImpl(); trigger.setCronExpression("0/2 * * * * ?"); trigger.setName(databaseMonitor.getName()); scheduler.scheduleJob(jobDetail, trigger); } catch (ParseException | SchedulerException e) { e.printStackTrace(); } } }