For implementing this in you need to have 3 java files -
Your Java Class which contains the job to be executed.
- Context Listener
- Job Listener
- JobClass
Your Java Class which contains the job to be executed.
Also you need to make the Listener
entry in the web.xml and add quartz- 1.8.0 jar.
import java.util.Date; import java.util.ResourceBundle; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.apache.log4j.Logger; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SimpleTrigger; import org.quartz.impl.StdSchedulerFactory; import org.quartz.CronTrigger; public class xyzContextListener implements ServletContextListener { /* (non-Javadoc) * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent) */ Scheduler scheduler = null; IncidentJobListener myJobListener; public void contextDestroyed(ServletContextEvent arg0) { try { scheduler.removeGlobalJobListener(myJobListener.getName()); scheduler.shutdown(false); } catch (SchedulerException e) { } } /* (non-Javadoc) * @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent) */ public void contextInitialized(ServletContextEvent arg0) { try { // Grab the Scheduler instance from the Factory scheduler = StdSchedulerFactory.getDefaultScheduler(); // scheduler.start(); JobDetail jobDetail = new JobDetail("job name" null, // job group (you can also specify 'null' to use the // default group) JobClass.class); // the java class to execute ResourceBundle rb = ResourceBundle .getBundle("resources.application"); String repeatInterval = rb.getString("batchInterval"); CronTrigger ct=new CronTrigger("cronTrigger","group3","0 01 10 ? * MON"); scheduler.scheduleJob(jd,ct); scheduler.start(); scheduler.scheduleJob(jd, ct); myJobListener = new IncidentJobListener(); scheduler.addGlobalJobListener(myJobListener); scheduler.start(); } catch (SchedulerException se) { } } }