Wednesday, February 18, 2015

Quartz -The Job Scheduling Library

Quartz -The Job Scheduling Library

 Quartz is a open source job scheduling library can be integrated with any Java applications.

 The application jobs to executed periodically or  at given moments .


 Job Scheduling:-scheduled to run a job when Trigger occurs
 Job Execution:-Jobs can be any Java class that implements Job interface













Maven dependency


<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>2.1.5</version>
</dependency>

or
download the jar

quartz-2.1.5.jar






Program to demonstrate Job Scheduling using Quartz


import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
import java.util.Date;
import org.quartz.CronTrigger;
import org.quartz.DateBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzDemo {


//
public static void StartCronEngine(Scheduler scheduler, Date startTime,
JobDetail job, String Triggername, String Triggergroupname,
String cronexpression) {
try {
CronTrigger trigger = newTrigger()
.withIdentity(Triggername, Triggergroupname)
.startAt(startTime)
.withSchedule(cronSchedule(cronexpression)).build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
} catch (Exception e) {
e.printStackTrace();
}

}

public static void pauseJob(JobKey jobKey, Scheduler scheduler) {
try {
scheduler.pauseJob(jobKey);
} catch (SchedulerException e) {
String msg = "Could not pause Quartz Scheduler job: " + jobKey;
throw new RuntimeException(msg, e);
}
}

public static void resumeJob(JobKey jobKey, Scheduler scheduler) {
try {
scheduler.resumeJob(jobKey);
} catch (SchedulerException e) {
String msg = "Could not resume Quartz Scheduler job: "
+ jobKey.getName();
throw new RuntimeException(msg, e);
}
}

public static boolean deleteJob(JobKey jobKey, Scheduler scheduler) {
try {
return scheduler.deleteJob(jobKey);
} catch (SchedulerException e) {
String msg = "Could not obtain Quartz Scheduler JobDetails";
throw new RuntimeException(msg, e);
}
}

public void startEngine() throws Exception {
try {
SchedulerFactory factory = new StdSchedulerFactory();
Date startTime = DateBuilder.nextGivenSecondDate(null, 15);
JobDetail job = JobBuilder.newJob(Enginejob.class)
.withIdentity(new JobKey("jobname", "jobgroup")).build();
StartCronEngine(factory.getScheduler(), startTime, job,
"trriger name", "trriger group name", "0/20 * * * * ?");
} catch (Exception e) {
e.printStackTrace();

}
}

public void pauseEngine() throws Exception {
try {
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
pauseJob(new JobKey("jobname", "jobgroup"), scheduler);
} catch (Exception e) {
e.printStackTrace();
}

}

public void resumeEngine() throws Exception {
try {
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
resumeJob(new JobKey("jobname", "jobgroup"), scheduler);
scheduler.start();
} catch (Exception ex) {
ex.printStackTrace();
}
}

public void deleteEngine() throws Exception {
try {
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
deleteJob(new JobKey("jobname", "jobgroup"), scheduler);
} catch (Exception ex) {
ex.printStackTrace();
}
}

}

1 comment:

  1. Quartz -The Job Scheduling Library demonstration in JAVA

    ReplyDelete