SpringBatchをシェルから実行する方法

SpringBatchをシェルから実行する方法

Spring Batchをシェルから実行する方法には、いくつかの手順があります。
Spring Batchは、Springフレームワークを使用してバッチ処理を行うためのライブラリです。
シェルから実行するには、通常、Javaアプリケーションとしてコンパイルされたバッチジョブをコマンドラインから実行します。
以下の方法で実行できます。

1. Spring Batchアプリケーションの準備

1.1. プロジェクトの作成

Spring Initializrや、Maven、Gradleを使用してSpring Batchプロジェクトを作成します。
必要な依存関係として、spring-boot-starter-batchを追加します。

1.2. バッチジョブの設定

@Configurationアノテーションを付けたクラスでバッチジョブを設定します。
例えば、以下のようにバッチジョブとステップを設定します。

import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.job.builder.JobBuilderFactory;
import org.springframework.batch.core.step.builder.StepBuilderFactory;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.JobRegistry;
import org.springframework.batch.core.configuration.annotation.JobRegistry;
import org.springframework.batch.core.configuration.annotation.JobRegistry;
import org.springframework.batch.core.configuration.annotation.JobRegistry;
import org.springframework.batch.core.configuration.annotation.JobRegistry;
import org.springframework.batch.core.configuration.annotation.JobRegistry;
import org.springframework.batch.core.configuration.annotation.JobRegistry;
import org.springframework.batch.core.configuration.annotation.JobRegistry;
import org.springframework.batch.core.configuration.annotation.JobRegistry;

@Configuration
@EnableBatchProcessing
public class BatchConfig {

    @Autowired
    private JobBuilderFactory jobBuilderFactory;

    @Autowired
    private StepBuilderFactory stepBuilderFactory;

    @Bean
    public Job sampleJob() {
        return jobBuilderFactory.get("sampleJob")
            .start(sampleStep())
            .build();
    }

    @Bean
    public Step sampleStep() {
        return stepBuilderFactory.get("sampleStep")
            .tasklet((contribution, chunkContext) -> {
                System.out.println("Hello, Spring Batch!");
                return RepeatStatus.FINISHED;
            }).build();
    }
}

2. SpringBootアプリケーションとして実行

Spring Batchジョブをシェルから実行する場合、通常はSpringBootアプリケーションとして実行します。
以下の手順で実行できます。

2.1. アプリケーションのパッケージ化

mvn packageまたはgradle buildコマンドを使用して、アプリケーションをJARファイルにパッケージ化します。

2.2. JARファイルの実行

以下のように、JARファイルを実行します。

    • job.nameオプションを使用して、実行するバッチジョブを指定します。
java -jar your-application.jar --job.name=sampleJob

3. コマンドラインでジョブの詳細設定

場合によっては、コマンドライン引数でジョブのパラメータを指定することもできます。
バッチジョブにパラメータを渡すには、--job.parametersオプションを使用します。

java -jar your-application.jar --job.name=sampleJob --job.parameters="param1=value1,param2=value2"

4. Spring Batch Admin(オプション)

Spring Batch Adminを使用することで、バッチジョブをWebベースで管理し、実行することも可能です。
これは追加の設定が必要ですが、ユーザーインターフェースからジョブの管理が可能です。

まとめ

Spring Batchをシェルから実行するためには、SpringBootアプリケーションとしてパッケージ化し、java -jarコマンドで実行します。
ジョブやステップの設定、コマンドライン引数の指定により、バッチジョブの実行やパラメータの渡し方を制御できます。