如何使用spring批处理注释配置读取和执行批处理
Posted
技术标签:
【中文标题】如何使用spring批处理注释配置读取和执行批处理【英文标题】:How to read and perform batch processing using spring batch annotation config 【发布时间】:2021-12-15 01:59:35 【问题描述】:我有 2 个具有不同数据的不同文件。该文件每天包含 10K 条记录。
Ex:
Productname price date
T shirt,500,051221
Pant,1000,051221
Productname price date
T shirt,800,061221
Pant,1800,061221
我想通过检查今天和昨天文件的价格差异来创建最终输出文件。
Ex:
Productname price
T shirt,300
Pant,800
通过使用弹簧批处理,我必须这样做。 我通过创建两个不同的步骤尝试了批量配置。但它只能读取数据。但无法 做处理。因为这里我需要两个文件的数据进行处理。但在我的情况下,它一步一步地阅读。
任何人都可以通过一些示例代码帮助我。
【问题讨论】:
【参考方案1】:我建议将FlatFile
的数据保存到数据库中,用于昨天和今天的日期(如果您可以轻松识别差异的两条记录,可以是两个单独的表或在同一个表中)。使用JdbcCursorItemReader
或PagingItemReader
读取此存储的数据,并在处理器级别执行数据的计算/逻辑/按摩,并根据方便创建一个新的平面文件或保存到数据库中。 OOTB Spring Batch 不提供读取数据和执行计算的功能。
建议 - 从FlatFile
读取数据并将其保存在缓存中并从缓存中读取并进行进一步处理。
【讨论】:
公共类 YesterFileWriter 实现 ItemWriter以上是关于如何使用spring批处理注释配置读取和执行批处理的主要内容,如果未能解决你的问题,请参考以下文章
使用 Groovy、IntelliJ 和 Gradle 在项目中“重新运行 Spring Boot 配置注释处理器”
如何在春季批处理中使用 MultiResourceItemReader 在读取单个 csv 后指定任务执行器以生成线程
@ConfigurationProperties Spring Boot 配置注释处理器在类路径中找不到
如何在 IntelliJ IDEA 14 中为当前项目工作配置注释处理?