从 Spring 批处理中的文件目录为每个输入文件创建输出文件

Create output file for each of input file from directory of files in Spring Batch

我有一个包含交易信息的 CSV 文件目录。
我需要读取每个文件,处理一些业务逻辑(使用数据库验证以检查是否有效的帐户和交易)并将有效的交易写入新的输出文件。

输入: Tranx_100.csv, Tranx_101.csv, Tranx_102.csv.....

输出: Tranx_100_output.csv, Tranx_101_output.csv, Tranx_102_output.csv.....

想要为此使用 spring 批处理。关于如何实施这个有什么建议吗?

对于每个文件作为输入、过程、输出都是相同的 - 我可以 运行 它们作为“Step”的一部分并重复 step 对于 JOB?

中的每个输入文件

我不会在同一个步骤上循环或在单个作业中使用多个步骤,而是为每个文件使用一个作业实例(即文件是一个识别作业参数)并并行启动作业。这种方法有多个优点:

  • 容错:在失败的情况下,只重新处理失败的文件
  • 可扩展性:您可以 运行 轻松并行执行多个作业
  • 日志记录:日志将按设计分开
  • 以及让一件事做一件事并做好的所有充分理由