I'm using Quartz 2.1.3.
My quartz.properties
:
#===================================================
# Configure the Job Initialization Plugin
#===================================================
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin
org.quartz.plugin.jobInitializer.fileNames = quartz-jobs.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false
My quart-jobs.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">
<schedule>
<job>
<name>myjob</name>
<group>MYJOBGROUP</group>
<description>Job to Test</description>
<job-class>com.upd.test.TestQuartz</job-class>
<trigger>
<cron>
<name>my-trigger</name>
<group>MYTRIGGER_GROUP</group>
<job-name>myjob</job-name>
<job-group>MYJOBGROUP</job-group>
<cron-expression>0/5 * * * * ?</cron-expression>
</cron>
</trigger>
</schedule>
</job-scheduling-data>
my web.xml
:
<context-param>
<param-name>quartz:config-file</param-name>
<param-value>quartz.properties</param-value>
</context-param>
<context-param>
<param-name>quartz:shutdown-on-unload</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:wait-on-shutdown</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>quartz:start-scheduler-on-load</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>
org.quartz.ee.servlet.QuartzInitializerListener
</listener-class>
</listener>
my TestQuartz
class:
package com.upd.test;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestQuartz implements Job{
private Logger logger = LoggerFactory.getLogger(TestQuartz.class);
public void printMe() {
logger.trace("Run Me");
}
public void execute(JobExecutionContext arg0) throws JobExecutionException {
printMe();
}
}
quartz.properties
and quartz-jobs.xml
I put under \WEB-INF\classes
When tomcat starts, the only thing I see from the log is:
(org.quartz.ee.servlet.QuartzInitializerListener:147) - Quartz Initializer Servlet loaded, initializing Scheduler...
(org.quartz.ee.servlet.QuartzInitializerListener:264) - Quartz Scheduler successful shutdown.
It seems like the quartz-jobs.xml
is not triggered by the quartz.properties
. I do anything wrong here?
Any reply is much appreciated. Thank you!
SOLVED:
- Add threadpool defined in `quartz.properties`.
- Download jta-1.1.jar.
THANKS for the comment!
Quartz Scheduler successful shutdown.
message appears when the whole application shuts down, are you seeings this immediately during startup? This means the scheduler isn't even running. Also make sure quartz.properties file is loaded. Intentionally do a grammar error in quartz.properties or quart-jobs.xml (use incorrect plugin class name, add some bogus text at the beginning...)
来源:https://stackoverflow.com/questions/9596957/quartz-properties-does-not-trigger-quartz-job