Struts 1 + Quartz 2スケジューラー統合の例
このチュートリアルでは、Apache Struts 1.xを使用して簡単なWebアプリケーションプロジェクトを作成し、Quartzスケジューラフレームワークと統合する方法を示します。 プロジェクトの起動時に、Quartzエンジンが起動し、定義されたスケジューラータスクが起動します。
全体的な考え方は非常に単純で、統合作業のためにQuartz Struts plug-inを作成する必要があります。
Struts <--> Quartz Struts Plug-in <--> Quartz
使用ツール:
-
Apache Struts 1.3.10
-
クォーツ2.1.5
-
Eclipse IDE
-
メーベン
Note
Quartzフレームワークの基本的な使用法については、このQuartz 2
scheduler exampleにアクセスしてください。
1. 依存
Mavenを介してStrutsおよびQuartzの依存関係を取得します。
ファイル:pom.xml
org.apache.tomcat servlet-api 6.0.35 org.apache.struts struts-core 1.3.10 org.apache.struts struts-taglib 1.3.10 org.apache.struts struts-extras 1.3.10 org.quartz-scheduler quartz 2.1.5
2. Quartz Schedulerジョブ
メッセージを印刷するQuartzジョブを作成します。
ファイル:SchedulerJob.java
package com.example.common.quartz;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class SchedulerJob implements Job
{
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("Print Print Struts 1.3 + Quartz 2.1.5 integration example ~");
}
}
3. Strutsプラグイン
シンプルなStrutsプラグインを作成し、Quartzフレームワークを統合します。 このプラグインでは、Strutsの初期化中に、init()メソッドが呼び出され、5秒ごとにQuartzスケジューラジョブが開始されます。
ファイル:QuartzPlugin.java
package com.example.common.plugin;
import javax.servlet.ServletException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import com.example.common.quartz.SchedulerJob;
public class QuartzPlugin implements PlugIn {
@Override
public void destroy() {
// null
}
@Override
public void init(ActionServlet servlet, ModuleConfig config)
throws ServletException {
JobDetail job = JobBuilder.newJob(SchedulerJob.class)
.withIdentity("anyJobName", "group1").build();
try {
Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("anyTriggerName", "group1")
.withSchedule(
CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
.build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
4. プラグインを宣言します
上記のStruts plug-inをStruts構成ファイル(struts-config.xml)に含めます。
ファイル:struts-config.xml
5. Demo
Strutsの起動中に、Quartzスケジューラタスクを起動します。

ソースコードをダウンロード
ダウンロード–Struts-Quartz-2-Example.zip(24 KB)