如何使用spring-batch从文件夹中连续读取文件?

会员之声

我使用的spring-batch处理多个csv从使用文件夹的文件spring-batch类似如下:

    @Bean
    public ItemReader<String> reader() {
        MultiResourceItemReader<String> reader = new MultiResourceItemReader<>();
        reader.setResources(new Resource[] {new FileSystemResource("/myfolder/*.csv")});
        reader.setDelegate(new FlatFileItemReader<>(..));
        return reader;
    }

作业是单线程执行器。

问题:每当将新文件添加到文件夹时,如何将它们添加到列表中并使用作业自动导入它们?

该文件夹中每天大约有 30.000 个文件。我可以告诉 spring-batch 自动检测新文件吗?

或者我是否总是必须在作业完成后立即重新启动作业,以便它开始导入在作业运行时添加的文件?

汉斯约格·温盖尔

SpringBatch 是一个“静态”的东西。一旦工作开始,它就会定义它将做什么,并且不能改变(......不做讨厌的黑客攻击)。

因此,一旦作业开始,您就无法更改 MultiResourceItemReader 的定义。

因此,作业的一次执行仅处理作业开始时存在的文件,并且为了处理稍后到达的文件,需要触发作业的另一次执行。

重要的是要了解 SpringBatch 不是作业控制系统。SpringBatch 在这里定义作业并执行作业运行。但是,为了触发要启动的作业,您还需要其他一些东西。

正如所建议的那样,这可能是一个 cron-job、spring-integration、springs Scheduler-Annotations,...正如 Stimpson Cat 所建议的那样。

此外,根据我自己的经验,我还建议使用 Essex Boy 提出的目录结构

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何连续读取Java中的文件?

如何使Shiny应用程序从文件中连续读取?

如何使用spring-batch和MultiResourceItemReader读取文件夹中的所有文件?

您如何连续读取Java文件?

如何使用 awk 在文件增长时连续读取文件?

Spring Batch如何使用PathMatchingResourcePatternResolver从文件夹及其所有子文件夹中读取所有json文件

即使找不到 csv 文件之一,如何提示程序继续读取 csv 文件夹中的其他 csv 文件?

在JMeter中,一个用户如何连续读取CSV文件的每一行?

如何连续读取Crystal中的二进制文件并从中获取字节?

如何从文件中连续读取 N 个字节直到 EOF

连续读取 Json 日志文件并使用 Python 运行查询

如何读取Bash Shell中多个文件夹和子文件夹中的文件

使用Windows Batch比较文件夹中的文件内容

如何从文件中读取,然后从cin继续读取?

如何使用python读取文件夹中的最新图像?

如何从日期之前创建的文件夹中读取文件

如何从Java读取文件夹中的所有文件?

如何从flask的静态文件夹中读取文件?

Swift:如何从文件夹中读取文件

如何读取位于项目文件夹Java中的文件

如何随机读取文件夹中的所有文件

如何仅读取 Region 文件夹中的 Sales 文件?

如何读取文件夹中的文件内容

如何从原始文件夹中读取某些文件?

使用ElementTree从文件夹中读取多个xml文件

使用骆驼ftp从子文件夹中读取文件

无法在Spring Batch中的afterStep中清除文件夹

如何从文件夹读取文件

如何使用Groovy读取文件夹中的所有文件并替换文件中的模式