「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(); // ビルド } }