Last active
August 29, 2015 14:02
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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