Spring Boot と Quartz を組み合わせて使用することで、タスクのスケジューリングやスケジュールされたタスク機能を実現できます。Spring Boot と Quartz のプロセスは次のとおりです。
- 依存関係の追加: Quartz の依存関係をSpring Boot プロジェクトファイル
pom.xml
に追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
- ジョブ クラスの作成:
org.quartz.Job
インターフェイスを実装し、特定のタスク ロジックを定義するジョブ クラスを作成します。
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// 在这里编写具体的任务逻辑
System.out.println("执行定时任务");
}
}
- JobDetail の作成:
org.quartz.JobDetail
Job のインスタンスを定義するオブジェクトを作成します。
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
.withIdentity("myJob")
.build();
- トリガーの作成:
org.quartz.Trigger
オブジェクトを作成してトリガーのルールを定義します。
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger")
.withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) // 每隔5秒执行一次
.build();
- SchedulerFactoryBean の作成:
org.springframework.scheduling.quartz.SchedulerFactoryBean
Quartz のスケジューラを構成するオブジェクトを作成します。
@Bean
public SchedulerFactoryBean schedulerFactoryBean() {
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
schedulerFactoryBean.setTriggers(trigger);
schedulerFactoryBean.setJobDetails(jobDetail);
return schedulerFactoryBean;
}
- アプリケーションの起動: Spring Boot エントリ クラスで、
@EnableScheduling
アノテーションを使用してタスク スケジューリング機能を有効にし、Spring Boot アプリケーションを実行します。
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- スケジュールされたタスクを構成する: タスクのスケジュールされた実行を必要とするメソッドにアノテーションを追加し
@Scheduled
、トリガー ルールを指定します。
@Component
public class MyScheduledTask {
@Scheduled(cron = "0/10 * * * * ?") // 每隔10秒执行一次
public void runTask() {
// 执行定时任务的逻辑
System.out.println("执行定时任务");
}
}
Job、Trigger、SchedulerFactoryBean を設定し、@Scheduled
アノテーションを使用することで、タスクのスケジュール機能や時間指定タスク機能を簡単に実装できます。