Struts 1 Quartz 2スケジューラー統合の例

Struts 1 + Quartz 2スケジューラー統合の例

このチュートリアルでは、Apache Struts 1.xを使用して簡単なWebアプリケーションプロジェクトを作成し、Quartzスケジューラフレームワークと統合する方法を示します。 プロジェクトの起動時に、Quartzエンジンが起動し、定義されたスケジューラータスクが起動します。

全体的な考え方は非常に単純で、統合作業のためにQuartz Struts plug-inを作成する必要があります。

Struts <--> Quartz Struts Plug-in <--> Quartz

使用ツール:

  1. Apache Struts 1.3.10

  2. クォーツ2.1.5

  3. Eclipse IDE

  4. メーベン

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 and quartz 2 example

ソースコードをダウンロード

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