BBH
-Biz Branding Hub-
投稿日 : 
2020/04/03
更新日 : 
2020/04/03

【SpringBoot】@Scheduledで定期的に処理を実行するサンプル

SpringBootでは@Scheduledアノテーションを使用することによって、コンテナを定期実行することができます。

定期実行を有効にするには3つの設定が必要です。
・エントリポイント(Application.javaなど)に@EnableSchedulingを付与
・定期実行する処理を持つクラスを作成し、アノテーションを付与し、コンテナ化する。
・定期実行処理を作成し、@Scheduledで実行間隔を指定する。

エントリポイント

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

スケジュール実行クラス

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class ScheduleSample {
	
	@Scheduled(fixedRate = 5000)  // 5秒
	public void scheduleExec() {
		System.out.println("スケジュール実行");
	}
}

@Scheduledは実行間隔だけでなく、Cron式を設定することもできます。
The @Scheduled Annotation in Spring | Baeldung

Profile

管理人プロフィール

都内でITエンジニアをやってます。
変遷:中規模SES→独立系SIer→Webサービス内製開発
使用技術はその時々でバラバラですが、C#、AWSが長いです。
どちらかと言うとバックエンドより開発が多かったです。
顧客との折衝や要件定義、マネジメント(10名弱程度)の経験あり。
最近はJava+SpringBootがメイン。

Recommend