Spring-boot Batch with H2


Spring-boot Batch with H2


🎁 目次

  • Spring-boot Batch with H2
  • 🎁 目次
  • 0.概要
  • 1.依存項目の追加
  • 2.バックアップの有効化
  • 3.ジョブの作成
  • 4.運転
  • 0.概要


    バッチはバッチを意味します.
    batchアプリケーションは次の条件を満たす必要があります.
  • 高容量データ:高容量データ処理
  • 自動化:ユーザーの介入なしで実行
  • 堅牢性:エラーデータを競合/中断なく処理
  • 信頼性:記録・警報等のエラー追跡
  • パフォーマンス:指定された時間内に処理を完了し、他のアプリケーションとは独立しています
  • batchはJobの集合です.
  • JobStepの集合
  • StepItemReader+ItemProcessor+ItemWriter|からなる.
  • ItemRearder:バッチデータを読み出すためのインタフェース.(データベース、ファイル、xmlなど)
  • ItemProcessor:加工/処理読み出しデータ
  • ItemWriter:データベース、ファイルなどに加工/処理されたデータを格納
  • Spring-bootバッチを使用するには、次のメタデータ・テーブルが必要です.
  • BATCH_STEP_EXECUTION
  • BATCH_STEP_EXECUTION_CONTEXT
  • BATCH_JOB_INSTANCE
  • BATCH_JOB_EXECUTION
  • BATCH_JOB_EXECUTION_PARAMS
  • BATCH_JOB_EXECUTION_CONTEXT
  • h 2のようなメモリdbを使用すると、spring-bootはこれらのテーブルを自動的に生成します.
    このドキュメントでは、h 2を使用してバッチを実行します.

    1.依存項目の追加

    build.gradleには、次の項目が追加されています.
    dependencies {  
      implementation 'org.springframework.boot:spring-boot-starter-batch'
      implementation 'com.h2database:h2'
    }
  • org.springframework.boot:spring-boot-starter-batch
  • spring-bootバッチ
  • com.h2database:h2
  • H 2(メモリデータベース)ライブラリ
  • 2.バックアップの有効化

  • DemoApplication.java修正
    main classに@EnableBatchProcessingを追加します.
  • @EnableBatchProcessing
    @SpringBootApplication
    public class DemoApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(DemoApplication.class, args);
    	}
    }
  • @EnableBatchProcessing
  • 展開可能
  • 3.ジョブの作成

  • package作成jobフォルダを作成します.
  • job class作成
    フォルダの下にSimpleJobConfiguration.javaを作成します.
  • @Slf4j
    @RequiredArgsConstructor
    @Configuration
    public class SimpleJobConfiguration {
      private final JobBuilderFactory jobBuilderFactory; 
      private final StepBuilderFactory stepBuilderFactory; 
    
      @Bean
      public Job simpleJob() {
        return jobBuilderFactory.get("simpleJob")
                .start(simpleStep1())
                .build();
      }
    
      @Bean
      public Step simpleStep1() {
        return stepBuilderFactory.get("simpleStep1")
                .tasklet((contribution, chunkContext) -> {
                  log.info(">>>>> This is Step1");
                  return RepeatStatus.FINISHED;
                })
                .build();
      }
    }
  • @Slf4j
  • ログを使用したLombok操作
  • @RequiredArgsConstructor
  • オートジェネレータ
  • @Configuration
  • springbatchのすべてのジョブは@Configuration使用として登録されています.
  • jobBuilderFactory.get("simpleJob")
  • SimpleJobというバッチジョブを作成します.
  • stepBuilderFactory.get("simpleStep1")
  • SimpleStep 1というバッチStepを生成します.
  • tasklet()
  • stepでの機能説明
  • 4.運転

    # 빌드
    ./gradlew build
    # Spring-boot 실행
    java -jar ./build/lib/*.jar
    ジョブ実行ログを表示できます.

    すべてのソースは羽状バニラに置いてあります.
    注意:jojoduのブログ