Skip to content

Instantly share code, notes, and snippets.

@git-hemant
Last active August 29, 2015 14:02
Show Gist options
  • Save git-hemant/bdfd2e1430aa3c1f6d85 to your computer and use it in GitHub Desktop.
Save git-hemant/bdfd2e1430aa3c1f6d85 to your computer and use it in GitHub Desktop.
Quartz 2.2.x Demo - It shows cron job which executes twice every minute
import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
public class QuartzCronDemo {
public static void main(String[] args) throws ParseException, SchedulerException {
new QuartzCronDemo().schedule(args);
}
public void schedule(String[] args) throws ParseException, SchedulerException {
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
Map<JobDetail, Set<? extends Trigger>> triggersAndJobs = new HashMap<JobDetail, Set<? extends Trigger>>();
Set<CronTrigger> triggerList = new HashSet<CronTrigger>();
String groupName = "GroupName";
String jobName = "JobName";
JobKey jobKey = new JobKey(jobName, groupName);
String triggerName = jobName;
JobDetail job = JobBuilder.newJob(MyCronJob.class).withIdentity(jobKey).usingJobData("groupName", groupName)
.usingJobData("jobName", jobName).build();
// Cron expression for executing job twice in a minute.
String[] cronExpressions = new String[] {
"0 * * ? * SUN-SAT",
"30 * * ? * SUN-SAT"
};
for (int i = 0; i < cronExpressions.length; i++) {
CronTrigger trigger = (CronTrigger) TriggerBuilder.newTrigger().withIdentity(triggerName + i, groupName)
.withSchedule(CronScheduleBuilder.cronSchedule(cronExpressions[i])).build();
triggerList.add(trigger);
}
triggersAndJobs.put(job, triggerList);
scheduler.start();
scheduler.scheduleJobs(triggersAndJobs, true);
}
// This class must be public.
public static class MyCronJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println(new Date() + " " + MyCronJob.class.getName() + " executed.");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment