I am learning quartz and Have tried some samples which works in Console application. Now am trying in web aplications. Following is what I did.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<display-name> Quartz Initializer Servlet</display-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>config-file</param-name>
<param-value>quartz.properties</param-value>
</init-param>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>start-scheduler-on-load</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
</web-app>
quartz.properties
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin
org.quartz.plugin.jobInitializer.fileNames = quartz-config.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false
# Configuring ThreadPool
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 30
org.quartz.threadPool.threadPriority = 5
quartz-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<job-scheduling-data
xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"
version="1.8">
<pre-processing-commands>
<delete-jobs-in-group>*</delete-jobs-in-group> <!-- clear all jobs in scheduler -->
<delete-triggers-in-group>*</delete-triggers-in-group> <!-- clear all triggers in scheduler -->
</pre-processing-commands>
<processing-directives>
<overwrite-existing-data>true</overwrite-existing-data>
<ignore-duplicates>false</ignore-duplicates>
</processing-directives>
<schedule>
<job>
<name>MyJob</name>
<job-class>com.kaplan.external.quartz.KpubScheduler</job-class>
</job>
<trigger>
<simple>
<name>TenSecondIntervals</name>
<job-name>MyJob</job-name>
<repeat-count>-1</repeat-count> <!-- repeat forever -->
<repeat-interval>10000</repeat-interval> <!-- every 10 seconds -->
</simple>
</trigger>
</schedule>
</job-scheduling-data>
KpubScheduler.java
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.StatefulJob;
public class KpubScheduler implements StatefulJob {
protected static final Log log = LogFactory.getLog(KpubScheduler.class);
public void execute(JobExecutionContext context) throws JobExecutionException {
try {
System.out.println("Quartz Config..........");
log.info("entering the quartz config");
} catch (Exception ex) {
log.info("entering the quartz config");
}
}
}
Now I have started the server. After it gets started, my KpubScheduler has to get invoked and I should get the log info's and Sysout's. But Nothing is happening. If I have a look at the log, its just giving this
Dec 29, 2010 8:21:37 PM org.apache.catalina.core.ApplicationContext log
INFO: QuartzInitializer: Scheduler has been started...
Dec 29, 2010 8:21:37 PM org.apache.catalina.core.ApplicationContext log
INFO: QuartzInitializer: Storing the Quartz Scheduler Factory in the servlet context at key: org.quartz.impl.StdSchedulerFactory.KEY
What may be the problem?. Am I doing it right?.
It's an open source job scheduling system that can be used from the smallest apps to the large-scale enterprise systems. The official website of Quartz.Net states: "Quartz.Net is a full-featured, open source job scheduling system that can be used from smallest apps to large scale enterprise systems."
Quartz is an open source Java library for scheduling Jobs. It has a very rich set of features including but not limited to persistent Jobs, transactions, and clustering. You can schedule Jobs to be executed at a certain time of day, or periodically at a certain interval, and much more.
QuartzJobScheduling is an open-source job scheduling library. It has a rich set of features that can integrate into our Java applications virtually. We can integrate it with either a stand-alone application or the largest e-commerce system. Quartz is used for creating complex schedules having tens-of-thousands of jobs.
it seems theoretically ok, but do you mean that the usage of this
<pre-processing-commands />
causes maybe to be deleted your jobs? can you try without them?
my application seems like yours but i have no problem with Quartz.
Are you sure that you did configure your log levels correctly for KpubScheduler?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With