Spring Boot 5 バッチ処理

runメソッド

@SpringBootApplication
public class App implements CommandLineRunner {
 @Autowired
 private static ApplicationContext ctx;

 public static void main(String[] args) {
  SpringApplication app = new SpringApplication(App.class).run();
  
  Webサービスを起動しない場合
  app.setWebEnvironment(false);
  
  アプリケーションの実行
  ctx = app.run();
 }

 public void run(String… args) throws Exception{
  ここが実行される
  
  アプリケーションの強制終了
  SpringApplication.exit(ctx);
 }
}

タスクの定期実行

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

 @Scheduled(
  initialDelay = 1000,
  fixedRate = 1000)
 public void myTask(){
  System.out.println("myTask");
 }

 設定ファイル使用
 @Scheduled(
  initialDelayString = "${app.initialDelay}",
  fixedDelayString = "${app.fixedDelay}")
 public void myTask(){
  System.out.println("myTask");
 }
}

※application.property
app.initialDelay=1000
app.fixedRate=1000
app.fixedDelay=1000

設定項目 機能
fixedDelay fixedDelayString タスクの完了時点から指定時間後にタスクを実行
fixedRate fixedRateString タスクの開始時点から指定時間後にタスクを実行
initialDelay initialDelayString

指定時間後に最初のタスクを実行