Scheduler Shutdown Example
In this section we will see how to shutdown the scheduler in quartz application. As we know that the scheduler is a main interface of a Quartz Scheduler it maintains the list of JobDetail and Trigger. If we will implement the Scheduler instances then must have to need the SchedulerFactory object. After implementation of this, we have to start it by using the start() method then it will execute (fire) any jobs. Shutdown process of scheduler is given below with code:
Description of program:
In this program we are going to shutdown the scheduler (SDS) of a quartz application and get the job name, group name, trigger name and its firing time. When we discuss about implementation of any quartz application then we needed two classes: one is scheduler class (StatusSchedule.java) and another is job class (StatusJob.java) that implements the Job interface. For this, firstly we need to implement a quartz scheduler. If we will implement the quartz scheduler then it requires the instance of SchedulerFactory and invokes its getScheduler() method. After that we will start this scheduler with the help of start() method. We know that the quartz scheduler have list of JobDetail and Trigger. The JobDetail object has the job name, job group and its class name that implements in Job interface and the CronTrigger object has the trigger name, trigger group and string type cron expression that is used for configuring the instance of CronTrigger for firing the job relatively after some specified time. Both are added in the quartz scheduler by using the scheduleJob() method. After doing this, it will check the scheduler is shutdown or not. If the scheduler is shutdown then it displays the message "Scheduler is shutdown" and "Job can't be executed here." Otherwise it will show "Scheduler isn't shutdown" and "Job is executed here.". Now, we will get the result like: job name, group name, trigger name and it firing times.
Description of code:
shutdown();
Above method used to shutdown the quartz scheduler that means breaking the
scheduler firing of triggers. The scheduler can not be re-started here.
isShutdown();
This method has the scheduler reports and returns a Boolean type date either
true or false. When it will return true that means scheduler is shutdown
otherwise it couldn't be shutdown and operations are executed here.
getFireTime();
This method has exact trigger firing time.
Here is the code of Scheduler class (StatusSchedule.java):
import org.quartz.CronTrigger;
|
Here is the code of Job class (StatusJob.java):
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class StatusJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
String name = context.getJobDetail().getName();
String group = context.getJobDetail().getGroup();
System.out.println("Job name: " + name + "\t" + "Group: " + group);
System.out.println("Trigger name: " + context.getTrigger().getName());
System.out.println("Friring Time: " + context.getFireTime());
}
}
Output of program (Scheduler is not shutdown) :
log4j:WARN No appenders could be found for logger (org.quartz.simpl.SimpleThreadPool). log4j:WARN Please initialize the log4j system properly. Scheduler isn't shutdown! Job is executed here. Job name: Show status Group: DEFAULT Trigger name: Cron Trigger Friring Time: Mon Feb 26 09:47:00 GMT+05:30 2007
|
Output of program (Scheduler is shutdown) :
log4j:WARN No appenders could be found for logger (org.quartz.simpl.SimpleThreadPool). log4j:WARN Please initialize the log4j system properly. Scheduler is shutdown! Job cann't be executed here.
|