我有以下用例:我需要处理大量文件。每个处理看起来或多或少都像这样:
1)读取文件
2)对内容进行操作(a)
3)对内容进行操作(b)
4)对内容进行操作(c)
...
n)删除文件
Spring Batch似乎是解决这个问题的一个很好的解决方案,但有一个例外:我不想读取步骤1中的所有文件,将所有文件传递给步骤2)等因为它会耗尽很多记忆。
编辑:我将文件提交到内存(而不是数据库)。这就是为什么我更喜欢逐个或批量处理文件。我的意思是:在单个文件/批处理上运行所有步骤(在最后一步中删除文件/批处理,清理内存),然后继续下一个文件/批处理,依此类推。
Spring Batch是否有一种机制支持一遍又一遍地执行所有步骤? 或者我应该多次运行相同的工作,直到我的文件用完为止?
谢谢和最诚挚的问候, 彼得
答案 0 :(得分:2)
在Spring Batch Doc中,这是在multi-file input
下处理的它只需一步即可完成,这将是:
答案 1 :(得分:1)
在N文件的简单情况下,您需要执行N个作业,每个作业都传递一个文件名JobParameter
。您的每个处理步骤都不能用Spring Batch表示,但您可以使用CompositeItemProcessor
来链接您的处理器。