当前位置: 首页 > 知识库问答 >
问题:

在Spring batch中以块级存储大量数据

沈巴英
2023-03-14

我刚接触spring,对spring了解不多,请帮我解决这个问题。我的用例是:我们使用spring batch和面向块的处理来处理数据。

在每个处理块的末尾(即,一旦满足提交间隔并将值传递给写入器),必须存储值列表,以便在整个tasklet完成后,必须使用存储的值列表将值写入csv文件。如果在块处理中发生了任何作业失败,那么将值列表写入文件就不应该发生。

共有1个答案

吴浩皛
2023-03-14

不要将所有数据存储在内存中;对于批处理应用程序来说是一个糟糕的做法。
另一种选择是创建一个标准的读/处理/写步骤,在该步骤中,您将处理过的块写入csv文件。
当作业错误发生时,停止作业并删除csv文件(您将得到与根本不写相同的结果)。
我认为您已经达到了解决内存问题的目标。

 类似资料:
  • 问题内容: 我将MongoDB与本机节点驱动程序一起使用,需要准确存储可能大于int最大值2147483647的数字。在跟踪使用情况时,我将需要能够增加数字。我有什么选择? 我正在用猫鼬。我遇到的问题是,当我过去2147483647时,它会将数字转换为双精度。如何强制Mongoose使用64位long int ? 我的架构如下所示 我的样子是这样 问题答案: 您现在可以使用该插件在Mongoose

  • 用例:步骤1:ItemReader:从数据库中读取1000个ItemProcessor块中的数据:处理这些数据。ItemWriter:将数据写入地图,以便下一步使用 步骤2:ItemReader:读取地图ItemProcessor:处理地图数据并获取新对象。ItemWriter:将新的进程对象持久化到数据库中。 现在我希望Map在整个作业中保持不变,目前我已经为Map创建了一个不同的POJO类,并

  • 本文向大家介绍如何在JavaScript cookie中存储大数据?,包括了如何在JavaScript cookie中存储大数据?的使用技巧和注意事项,需要的朋友参考一下 要将较大的值存储在JavaScript cookie中,请尝试以下可能性- 创建一个“会话ID”,并将设置保存在数据库中。然后将会话ID存储在cookie中。 存储所选项目的索引。假设所选项目是列表中的前20个项目- 创建一个表

  • 编辑:在评论中进行了一些讨论后,发现由于幸运地了解了浮点数是如何在C中实现的,我问了一些与我想问的不同的东西。 我想使用比更大的整数(对我来说是8个字节)(对我来说是8个字节),可能不会重复出现在数组或bigint库中。由于我的是16个字节,我认为只需切换类型就可以了。结果表明,即使可以表示更大的整数,你也不能在不失去精度的情况下进行操作——用这些更大的整数。所以不可能实现我想做的事情。实际上,正

  • 我面临着从CSV到MSSQL表的批量插入的问题。使用try, catch块我看不到任何错误,但当我在没有try catch块的情况下执行时,它会给出以下3个错误。 Msg 4864,级别16,状态1,第1行第2行第10列(InActiveDate)的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)。 消息 7399,级别 16,状态 1,第 1 行 链接服务器“(空)”的 OLE DB 提

  • 问题内容: 因此,我将这根小电缆插入您的手机,该手机的另一侧具有USB端口,例如,您可以在其中插入闪存驱动器 当我插入闪存驱动器时,我收到一条通知,内容为: 已连接USB大容量存储 然后,当我启动文件浏览器应用程序时,我可以看到驱动器 位于: / storage / UsbDriveA / 太好了,但是我想知道如何在 代码中访问闪存驱动器。轻松访问SD卡: 但是,对于闪存驱动器,您将如何做呢?提前