我刚开始使用Spring Batch。我正在使用将AWS Batch与Docker映像一起使用的命令行启动器。尝试仅对作业实例命名进行排序。
在jobBuilder中的下面的文字字符串中使用@Value是否可以接受?本质上,我要传递的S3文件密钥已经是唯一的值,因为我有一个任务要在我的FlatFileReader运行之前抓取文件。目标是在因故障而需要时方便重试该作业。
@Bean
public Job jobParametersJob() {
return jobBuilderFactory.get("PassedInValue")
.start(step1())
.next(step2())
.next(step3())
.build();
}
答案 0 :(得分:0)
我最终通过使用实现JobParametersIncrementer的作业增量器解决了问题。请注意,在我的情况下,我当前没有传递任何作业参数,因此在这里设置它们是因为我的参数当前只是通过环境变量传递到docker容器中。
public class JobIncrementer implements JobParametersIncrementer {
@Value("${s3filekey}")
String s3filekey;
@Override
public JobParameters getNext(JobParameters jobParameters) {
return new JobParametersBuilder().addString("s3filekey",s3filekey).toJobParameters();
}...//then in job configuration...
@Bean
public Job jobParametersJob() {
return jobBuilderFactory.get("jobParametersJob")
.incrementer(jobIncrementer)
.start(step1())
.next(step2())
.next(step3())
.build();
}