「Spring Boot」Quartz Scheduler(ジョブ・トリガー)のサンプル
書式
1.スケジューラー作成 StdSchedulerFactory.getDefaultScheduler();
2.ジョブ作成 JobBuilder.newJob(xxx)
3.トリガー作成 TriggerBuilder.newTrigger()
使用例
package org.ws.quartz.arkgame;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SimpleQuartzExample {
private static Logger logger = LoggerFactory.getLogger(SimpleQuartzExample.class);
public static void main(String[] args) throws SchedulerException, InterruptedException {
SimpleQuartzExample em = new SimpleQuartzExample();
logger.info("schedulerを初期化");
// ジョブ作成
JobDetail jobDetail = em.createJobDetail();
// トリガーを作成
Trigger trigger = em.createTrigger();
// スケジューラーを作成
Scheduler scheduler = em.createScheduler();
// スケジューラータスクを作成
scheduler.scheduleJob(jobDetail, trigger);
logger.info("execute scheduler");
// スケジューラーを開始
scheduler.start();
// スケジューラーを停止
Thread.sleep(20000);
scheduler.shutdown();
logger.info("schedulerをシャットダウン");
}
// スケジューラーを作成
protected Scheduler createScheduler() throws SchedulerException{
return StdSchedulerFactory.getDefaultScheduler();
}
// ジョブ作成
protected JobDetail createJobDetail(){
return JobBuilder.newJob(HelloWorldJob.class) // タスクを待つ
.withIdentity("HelloWorld_Job", "HelloWorld_Group") // 名前とグループの識別子
.usingJobData("count", 0) // 初期化
.build(); // ビルド
}
//トリガーを作成
protected Trigger createTrigger(){
return TriggerBuilder.newTrigger()
.withIdentity("HelloWorld_Trigger", "HelloWorld_Group") // 名前とグループの識別子
.withSchedule(
SimpleScheduleBuilder.simpleSchedule() // SimpleTriggerを作成
.withIntervalInSeconds(10) // 10秒間隔
.repeatForever() // ループ
).build(); // ビルド
}
}
package org.ws.quartz.arkgame;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SimpleQuartzExample {
private static Logger logger = LoggerFactory.getLogger(SimpleQuartzExample.class);
public static void main(String[] args) throws SchedulerException, InterruptedException {
SimpleQuartzExample em = new SimpleQuartzExample();
logger.info("schedulerを初期化");
// ジョブ作成
JobDetail jobDetail = em.createJobDetail();
// トリガーを作成
Trigger trigger = em.createTrigger();
// スケジューラーを作成
Scheduler scheduler = em.createScheduler();
// スケジューラータスクを作成
scheduler.scheduleJob(jobDetail, trigger);
logger.info("execute scheduler");
// スケジューラーを開始
scheduler.start();
// スケジューラーを停止
Thread.sleep(20000);
scheduler.shutdown();
logger.info("schedulerをシャットダウン");
}
// スケジューラーを作成
protected Scheduler createScheduler() throws SchedulerException{
return StdSchedulerFactory.getDefaultScheduler();
}
// ジョブ作成
protected JobDetail createJobDetail(){
return JobBuilder.newJob(HelloWorldJob.class) // タスクを待つ
.withIdentity("HelloWorld_Job", "HelloWorld_Group") // 名前とグループの識別子
.usingJobData("count", 0) // 初期化
.build(); // ビルド
}
//トリガーを作成
protected Trigger createTrigger(){
return TriggerBuilder.newTrigger()
.withIdentity("HelloWorld_Trigger", "HelloWorld_Group") // 名前とグループの識別子
.withSchedule(
SimpleScheduleBuilder.simpleSchedule() // SimpleTriggerを作成
.withIntervalInSeconds(10) // 10秒間隔
.repeatForever() // ループ
).build(); // ビルド
}
}
package org.ws.quartz.arkgame; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SimpleScheduleBuilder; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SimpleQuartzExample { private static Logger logger = LoggerFactory.getLogger(SimpleQuartzExample.class); public static void main(String[] args) throws SchedulerException, InterruptedException { SimpleQuartzExample em = new SimpleQuartzExample(); logger.info("schedulerを初期化"); // ジョブ作成 JobDetail jobDetail = em.createJobDetail(); // トリガーを作成 Trigger trigger = em.createTrigger(); // スケジューラーを作成 Scheduler scheduler = em.createScheduler(); // スケジューラータスクを作成 scheduler.scheduleJob(jobDetail, trigger); logger.info("execute scheduler"); // スケジューラーを開始 scheduler.start(); // スケジューラーを停止 Thread.sleep(20000); scheduler.shutdown(); logger.info("schedulerをシャットダウン"); } // スケジューラーを作成 protected Scheduler createScheduler() throws SchedulerException{ return StdSchedulerFactory.getDefaultScheduler(); } // ジョブ作成 protected JobDetail createJobDetail(){ return JobBuilder.newJob(HelloWorldJob.class) // タスクを待つ .withIdentity("HelloWorld_Job", "HelloWorld_Group") // 名前とグループの識別子 .usingJobData("count", 0) // 初期化 .build(); // ビルド } //トリガーを作成 protected Trigger createTrigger(){ return TriggerBuilder.newTrigger() .withIdentity("HelloWorld_Trigger", "HelloWorld_Group") // 名前とグループの識別子 .withSchedule( SimpleScheduleBuilder.simpleSchedule() // SimpleTriggerを作成 .withIntervalInSeconds(10) // 10秒間隔 .repeatForever() // ループ ).build(); // ビルド } }