是否可以在Job
中动态配置spring-batch
?
这是我想要做的。我创建了几个不同的ItemReader
,ItemWriter
,如下所示:
我希望能够在创建批处理作业时动态混合和匹配它们。例如,假设我需要一个有2个步骤的Job。第一步包含Tasklet
预处理。第二步将使用我的读/写器进行基于块的数据处理的Tasklet
....这样的事情:
// define job parameters
JobParametersBuilder parameters = new JobParametersBuilder();
// create two steps
TaskletStep step1 = new TaskletStep();
TaskletStep step2 = new TaskletStep();
step1.setName("PreProcessingStep");
step2.setName("ChunkReadWriteStep");
// create two TaskLets
Tasklet tasklet1 = new PreProcessingTasklet();
Tasklet tasklet2; <------ HOW DO I ATTACH MY reader/writer IN THIS TASKLET??
// attach the TaskLet to the step
step1.setTasklet(tasklet1);
step2.setTasklet(tasklet2);
// attach the steps to the job
SimpleJob job = new SimpleJob("MyBatchJob");
job.addStep(step1);
job.addStep(step2);
jobLauncher.run(job, parameters.toJobParameters());
在XML中,我可以这样做:
<job id="MyBatchJob">
<step id="preprocessing" next="readWriteStep">
<tasklet ref="PreProcessingTasklet"/>
</step>
<step id="readWriteStep">
<tasklet>
<chunk reader="FlatFileItemReader" writer="DBItemWriter"/>
</tasklet>
</step>
</job>
但是,我如何以编程方式执行此操作?
答案 0 :(得分:1)
Spring Batch通过java代码而不是XML提供基于java的配置来构建作业。通过使用提供的构建器,您可以根据需要动态构建作业。我强烈建议您使用此方法,而不是手动连接ChunkOrientedTasklet
,因为该特定Tasklet
中有相当多的内容。
开始使用Spring Batch的Java配置的最佳位置是Spring Batch指南:http://spring.io/guides/gs/batch-processing/。使用Spring Boot和java配置等工具开始使用Spring Batch需要15分钟。