‘org.quartz.Scheduler’ interface provides isStarted
method, it return true if the scheduler is started, else false.
Find the below working application.
HelloJob.java
package com.sample.jobs; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.quartz.Scheduler; import org.quartz.SchedulerException; public class HelloJob implements Job { public void execute(JobExecutionContext jec) throws JobExecutionException { String schedulerName = null; String schedulerInstanceId = null; String userName = null; String token = null; try { Scheduler scheduler = jec.getScheduler(); schedulerName = scheduler.getSchedulerName(); schedulerInstanceId = scheduler.getSchedulerInstanceId(); userName = (String) scheduler.getContext().get("userName"); token = (String) scheduler.getContext().get("token"); } catch (SchedulerException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("**************************************************"); System.out.println("Hello!!!"); System.out.println("Job is triggered by scheduler : " + schedulerName); System.out.println("Scheduler instance id : " + schedulerInstanceId); System.out.println("User name : " + userName); System.out.println("Token : " + token); System.out.println("**************************************************"); } }
QuartzSchedulerEx.java
package com.sample.app; import java.util.Date; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.impl.JobDetailImpl; import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.triggers.SimpleTriggerImpl; import com.sample.jobs.HelloJob; public class QuartzSchedulerEx { public static void main(String args[]) throws SchedulerException, InterruptedException { // Initiate a Schedule Factory SchedulerFactory schedulerFactory = new StdSchedulerFactory(); // Retrieve a scheduler from schedule factory Scheduler scheduler = schedulerFactory.getScheduler(); scheduler.getContext().put("userName", "Krishna"); scheduler.getContext().put("token", "token1234"); // Delay the execution of scheduler for 5 seconds scheduler.startDelayed(5); JobDetailImpl helloJobDetails = new JobDetailImpl(); helloJobDetails.setName("Hello Job"); helloJobDetails.setJobClass(HelloJob.class); // Creating schedule time with trigger SimpleTriggerImpl trigger1 = new SimpleTriggerImpl(); trigger1.setStartTime(new Date(System.currentTimeMillis() + 500)); trigger1.setRepeatCount(-1); trigger1.setRepeatInterval(3000); trigger1.setName("First Trigger"); trigger1.setPriority(10); // Setting trigger 1 priority to 10 scheduler.scheduleJob(helloJobDetails, trigger1); Thread t1 = new Thread() { public void run() { try { while (!scheduler.isStarted()) { Thread.sleep(1000); System.out.println("Scheduler is not started"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; t1.start(); } }
Output
Scheduler is not started
Scheduler is not started
Scheduler is not started
Scheduler is not started
**************************************************
Hello!!!
**************************************************
Hello!!!
Job is triggered by scheduler : DefaultQuartzScheduler
Scheduler instance id : NON_CLUSTERED
Job is triggered by scheduler : DefaultQuartzScheduler
Scheduler instance id : NON_CLUSTERED
User name : Krishna
User name : Krishna
Token : token1234
**************************************************
Token : token1234
**************************************************
Scheduler is not started
**************************************************
Hello!!!
Job is triggered by scheduler : DefaultQuartzScheduler
Scheduler instance id : NON_CLUSTERED
User name : Krishna
Token : token1234
**************************************************
.....
.....
.....
No comments:
Post a Comment