读取数千个 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 批处理中开箱即用的组件并行处理它们,您甚至可以对它们进行分区。
我正在使用 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 批处理中开箱即用的组件并行处理它们,您甚至可以对它们进行分区。