我正在使用Spring Batch并为我的批处理过程定义一个作业,但问题是我需要从特定目录中读取80.000个jpeg文件的名称作为输入,我想读取例如每个块1000个。 我也听说过Spring Integration这样做,但我不知道这是否正确。 如果我采取正确的方法,请指导我。
感谢。
当我想要初始化我的自定义项目阅读器时,我是否应该将所有文件提取到像List或其他类似的集合结构中?它是最佳的吗?
我想根据每个文件的名称从数据库中一次读取项目。我该怎么做JpaPagingItemReader
?
答案 0 :(得分:0)
是的,Spring Integration FileReadingMessageSource
确实可以用于此任务。读取文件为发出消息的payload
。您可以使用maxMessagesPerPoll = 1000
来获取每个轮询任务的最大值。
如果您确实需要将它们合并为一条消息,则需要aggregator
。
对不起,我不知道Spring Batch从这个角度来建议你这么好。
答案 1 :(得分:0)
这实际上取决于你想用JPEG做什么。基于您对以每块1000块分块的兴趣,除非您需要某种形式的编排功能(例如在文件出现时运行作业),否则没有任何理由可以使用Spring Integration。
只需使用ItemReader
并将步骤配置为块1000.如果可以使用Spring Batch中的现成组件并行处理它们,您甚至可以对它们进行分区。