2009年9月24日木曜日

groovyでquartzのジョブを作成する

1.quartzを使用するための設定
http://www.opensymphony.com/quartz/download.actionから
quartz-1.6.5.zipをダウンロードして、解凍。
quartz-all-1.6.5.jarをgroovyのlibディレクトリへコピー。
quartzのlib/coreのcommons-collections-3.2.jarをgroovyのlibディレクトリへコピー。

2.以下のようにJobインターフェイスを実装するクラスを作成

ジョブの実装(HelloQuartzJob.groovy)

import org.quartz.*

class HelloQuartzJob implements Job
{
// ジョブ実行メソッド
void execute(JobExecutionContext context)
throws JobExecutionException
{
println("Hello, Quartz!" + new Date())
}
}


3.作成したジョブクラスをJobDetailとTriggerに関連付けて実行します。

ジョブの登録と実行

import org.quartz.*
import org.quartz.impl.*

// スケジューラ取得
sf = new StdSchedulerFactory()
sched = sf.getScheduler()

// 次の分の0秒にスケジュール
Date runTime = TriggerUtils.getEvenMinuteDate(new Date())
JobDetail job = new JobDetail(
// ジョブ名
"job1",
// グループ名
"group1",
// ジョブクラス
HelloQuartzJob.class
)

// 指定した時間に実行するトリガー
trigger = new SimpleTrigger(
// トリガー名
"trigger1",
// グループ名
"group1",
// 実行時間
runTime
)

// ジョブをスケジュール
sched.scheduleJob(job, trigger)

// スケジューラを開始
sched.start();

try {
// ジョブ実行をするために2分待ち
Thread.sleep(120L * 1000L)
}
catch(Exception ex){}

// 終了
sched.shutdown(true)

0 件のコメント:

コメントを投稿