やりたいこと
BatchConfig
にJob
を複数定義している。
下記のBatchConfig
の定義に記載されてるjob1
のみ実行されるようにしたい
- 環境eclipseでの実行方法を知りたい
- jarファイルの場合は、
java -Dspring.batch.job.names=job1 -jar sample.jar
で実行することを想定している(検証未)
やったこと
Javaアプリケーション
の実行の引数欄に-Dspring.batch.job.names=job1
を設定し、実行したが、すべてのjob1
,job2
がすべて実行された
#BatchConfigの定義
java
1@Configuration 2@EnableBatchProcessing 3public class BatchConfig { 4 5 @Autowired 6 private JobBuilderFactory jobBuilderFactory; 7 8 @Autowired 9 private StepBuilderFactory stepBuilderFactory; 10 11 @Autowired 12 private Task1 task1; 13 14 @Autowired 15 private Task2 task2; 16 17 @Bean 18 public Step step1() { 19 return stepBuilderFactory.get("step1").tasklet(task1).build(); 20 } 21 22 @Bean 23 public Step step2() { 24 return stepBuilderFactory.get("step2").tasklet(task2).build(); 25 } 26 27 @Bean 28 public Job job1(Step step1, Step step2) throws Exception { 29 // step1 -> step2の順に実行される。 30 return jobBuilderFactory 31 .get("job1") 32 .incrementer(new RunIdIncrementer()) 33 .start(step1) 34 .next(step2) 35 .build(); 36 } 37 @Bean 38 public Job job2(Step step1) throws Exception { 39 // step1 のみ実行される。 40 return jobBuilderFactory 41 .get("job2") 42 .incrementer(new RunIdIncrementer()) 43 .start(step1) 44 .build(); 45 } 46 47}
#フレームワーク
- SpringBatch
あなたの回答
tips
プレビュー