我的工作有两个步骤。第一步是在具有以下结构的文件夹中创建一个文件
src/<timestamp>/file.zip
下一步需要检索该文件并对其进行处理
我想将时间戳添加到作业参数中。每个作业实例都通过时间戳来区分,但在第一步完成之前我不知道时间戳。如果我在作业开始时将时间戳添加到作业参数中,那么每次都会启动一个新的作业实例。任何未完成的作业都将被忽略。
最佳答案
我认为您可以改用 JobExecutionContext。
第 1 步获取当前时间戳,使用它生成文件,并将其放入 JobExecutionContext。步骤2从JobExecutionContext中读取时间戳,用于构造其处理的输入路径。
只是在你的分割步骤方法之上添加一些东西,如下所示:你必须三思而后行,这是否真的是你想要的。如果步骤 1 完成,步骤 2 失败,当作业实例重新运行时,它将从步骤 2 开始,这意味着文件不会在步骤 1 中重新生成(因为它已经完成)。如果这是您所寻找的,那就很好。如果没有,您可以看看是否要将 Step1 和 Step2 放在一个步骤中。
关于spring-batch - spring批量一步添加作业参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11731927/