读取数千个 jpeg 文件的名称作为 Spring 批处理中的输入

Reading names of thousands of jpeg files as input in Spring Batch

我正在使用 Spring 批处理并为我的批处理定义一个作业,但问题是我需要从特定目录读取 80.000 个 jpeg 文件的名称作为输入,我想读取例如 1000每块。 我也听说过 Spring Integration 这样做,但我不知道这是否正确。 如果我采取正确的方法,请指导我。

谢谢。

更新:

当我想初始化我的自定义项目时,我是否应该将所有文件提取到一个集合结构中,如列表或其他东西Reader?它是最佳的吗? 我想根据每个文件的名称一次从数据库中读取项目。我应该怎么做 JpaPagingItemReader ?

是的,Spring 集成 FileReadingMessageSource 确实可以用于此任务。读取的文件是 payload of emitted message 。您可以使用 maxMessagesPerPoll = 1000 来获得每个轮询任务的最大值。

如果您确实需要将它们组合成一条消息,则需要 aggregator

抱歉,我不知道Spring批次很好,从那个角度给你一些建议。

这实际上取决于您要对 JPEG 做什么。根据您对以每个块 1000 个为单位对它们进行分块的兴趣,确实没有任何理由让 Spring 涉及集成,除非您需要它来实现某种形式的编排功能(运行 文件出现时的工作例子)。

只需使用 ItemReader 并将您的步骤配置为以 1000 分块。如果可以使用 Spring 批处理中开箱即用的组件并行处理它们,您甚至可以对它们进行分区。