gpt4 book ai didi

java - 如何在使用 ItemWriter 步骤时限制 Spring Batch 的大小?

转载 作者:行者123 更新时间:2023-12-01 19:01:01 25 4
gpt4 key购买 nike

我已使用 Spring Batch 成功从数据库中读取项目。

现在我必须将其写入 xml 文件,但这里有一个 catch xml 文件大小,它不能超过 100mb,如果是则内容应写入另一个文件。

有什么方法可以在配置编写器步骤时限制文件大小,或者我必须实现自定义编写器。有什么建议吗?

最佳答案

我不相信有办法使用 Spring Batch 来做到这一点。

您应该实现的解决方案取决于文件最大大小为 100mb 的要求。

这是系统基础设施要求吗?或者对文件接收系统有什么要求?

您有 3 个选择:

  1. 正如您所说,可以创建一个自定义编写器,用于在文件达到此最大大小时拆分文件。这是非常令人讨厌的,因为你基本上必须编写一个全新的编写器,然后必须由你维护它,并且实际的实现也不会很好(必须写入文件,检查大小,然后如果超过 100mb然后再次从文件中删除)。

  2. 猜测文件有多大的 block 大小。这只是猜测 1 条记录的大小为 1mb(示例),因此每个文件最多只能有 100 条记录。这是一个相当危险的解决方案,因为它不能保证文件大小低于 100mb,但我相信这可以使用标准 spring 批处理来实现。

  3. 创建一个额外的步骤来在写入大文件后拆分文件。这是我的首选解决方案。它是您创建一个包含所有内容的大型“临时”文件(例如 450mb)。然后,您有一个辅助进程(步骤),该进程将该文件拆分为 5 个单独的文件(4x100mb、1x50mb)。这也可以在 Spring Batch 中完成,如果需要,也可以在同一个批处理作业中完成

关于java - 如何在使用 ItemWriter 步骤时限制 Spring Batch 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59639311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com