Spring Bootタスクスケジューリングの実装方法
Spring Taskフレームワークを使用すると、Spring Bootでタスクのスケジュールを実行できます。以下は、タスクのスケジュールを実行するための手順です。
- pom.xml ファイルに spring-boot-starter-quartz の依存関係を追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
- クォーツジョブビーンから継承したジョブクラスを作成し、具体的なジョブロジックを実装します。例:
@Component
public class MyJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
// 执行任务逻辑
System.out.println("Hello, world!");
}
}
- アプリケーションプロパティファイルにタスクスケジューリング関連のプロパティを設定します。たとえば、
spring.quartz.job-store-type=jdbc
spring.quartz.jdbc.initialize-schema=always
- QuartzConfigurerAdapterを継承したクラスを作成してジョブスケジューラーおよびトリガーの設定を行う。例えば:
@Configuration
public class QuartzConfig extends QuartzConfigurerAdapter {
@Autowired
private MyJob myJob;
@Override
public void configure(JobDetailFactoryBean jobDetailFactoryBean, TriggerFactoryBean triggerFactoryBean) {
jobDetailFactoryBean.setJobClass(myJob.getClass());
SimpleTriggerFactoryBean stFactory = new SimpleTriggerFactoryBean();
stFactory.setJobDetail(jobDetailFactoryBean.getObject());
stFactory.setStartDelay(3000L);
stFactory.setRepeatInterval(5000L);
stFactory.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
triggerFactoryBean.setObject(stFactory.getObject());
}
}
先に示したコンフィグレーションクラスでは、configureメソッドでジョブのJobDetailとトリガー( Trigger)の設定を行っている。このサンプルでは、SimpleTriggerを利用してトリガーしており、5秒毎にジョブを実行する。
- Spring Boot アプリケーション起動時に、タスクスケジューラは設定された時間間隔に従ってタスクを実行します
以上のステップは基本的な例なので、必要に応じてカスタマイズや設定を変更できます。詳しいタスクスケジュールの設定や使い方については、Spring TaskとQuartzフレームワークの公式ドキュメントを参照してください。