Quartz プロパティで見つかった以前の質問はQuartz Job をトリガーしませんを参照し、そこから大量に借りました (Quartz とすべての初心者であるため) が、私の仕事は起動していないようです。
私のquartz.properties
:
org.quartz.scheduler.instanceName = MyScheduler
org.quartz.threadPool.threadCount = 3
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#===================================================
# Configure the Job Initialization Plugin
#===================================================
org.quartz.plugin.triggerHistory.class: org.quartz.plugins.history.LoggingTriggerHistoryPlugin
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
私のquartz-job.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.mpm.epick.enotify.EmailNotifier</job-class>
</job>
<trigger>
<cron>
<name>my-trigger</name>
<group>MYTRIGGER_GROUP</group>
<job-name>myjob</job-name>
<job-group>MYJOBGROUP</job-group>
<cron-expression>* * * * * ?</cron-expression>
</cron>
</trigger>
</schedule>
</job-scheduling-data>
に追加したパーツweb.xml
:
<!-- added by ck -->
<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>
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- end additions -->
実行したいクラス ファイル「EmailNotifier」(現在は単なるスタブ実装です):
package com.mpm.epick.enotify;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class EmailNotifier implements Job {
public EmailNotifier() {}
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Cron executing ");
}
}
したがって、次のデバッグ行に示されているように、スケジューラが正常に開始/停止できることがわかります。
INFO: QuartzInitializer: Scheduler has been started...
INFO: QuartzInitializer: Quartz Scheduler successful shutdown.
しかし、私のコンソールでは、デバッグ行がまったく表示されません。ログファイルを試しましたが、そこにもありませんでした。
仕事を解雇するために何か不足していますか?