spring-batch - spring批量一步添加作业参数

标签 spring-batch

我的工作有两个步骤。第一步是在具有以下结构的文件夹中创建一个文件

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/

相关文章:

java - Spring Batch 在处理每个批处理后是否释放堆内存?

spring-batch - Spring 批处理 : restarting a completed job with same parameters

java - Spring批量读取失败重试机制

spring-batch - Spring Batch CompositeItemWriter 如何为委托(delegate)编写者管理事务?

java - 如何在 spring-batch 中计算 Tasket 中的项目?

spring - 字段 'target' 上的对象 '' 中的字段错误 : rejected value []; codes [typeMismatch. 目标.,typeMismatch.,typeMismatch.java.util.Date,typeMismatch]

java - 当 Tasklet#execute 应该返回 CONTINUABLE 时?

java - Spring Batch JpaItemWriter vs HibernateItemWriter 以及为什么在使用 HibernateItemWriter 时需要 HibernateTransactionManager

spring - org.springframework.batch.item.ItemStreamException : File is not writable: Spring Batch

java - 如何使用 Spring 框架实现 Java cron 作业,我正在寻找 Spring Batch 吗?