Monday, 29 July 2019

Quartz: getFinalFireTime: Get the final fire time of the trigger


Trigger interface provides 'getFinalFireTime', it returns the last time at which the Trigger will fire. if it is never ending job, then it return null.

Example
Date finalFireTime = trigger1.getFinalFireTime();

Find the below working example.

PrintJob.java
package com.sample.jobs;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class PrintJob implements Job {
 public void execute(JobExecutionContext jec) throws JobExecutionException {
  System.out.println("Printing.....");
 }
}


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.PrintJob;

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();

  // Creating JobDetailImpl and link to our Job class
  JobDetailImpl printJobDetails = new JobDetailImpl();
  printJobDetails.setJobClass(PrintJob.class);
  printJobDetails.setName("PrintJob");
  printJobDetails.setGroup("PrintMessages");

  // Creating schedule time with trigger
  SimpleTriggerImpl trigger1 = new SimpleTriggerImpl();
  trigger1.setStartTime(new Date(System.currentTimeMillis() + 500));
  trigger1.setRepeatCount(1000);
  trigger1.setRepeatInterval(3000);
  trigger1.setName("First Trigger");
  trigger1.setDescription("Job executes every 1 second");

  // Start scheduler
  scheduler.start();

  // Schedule the jobs using triggers
  scheduler.scheduleJob(printJobDetails, trigger1);

  Date finalFireTime = trigger1.getFinalFireTime();
  Date currentTime = new Date();

  System.out.println("Current Time : " + currentTime);
  System.out.println("Trigger final fire time : " + finalFireTime);
 }
}

Run the application, you can able to see below messages in console.

Output
Current Time : Thu Jul 19 10:55:14 IST 2018
Trigger final fire time : Thu Jul 19 11:45:14 IST 2018
Printing.....
Printing.....
Printing.....



Previous                                                    Next                                                    Home

No comments:

Post a Comment