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

如何使用Spring批处理编写结果文件

阚原
2023-03-14

我有一个Spring批导入流程,它有以下步骤:

  1. 读取特定格式的文件
  2. 保存人员、属性和约会的数据(每个文件行可以表示对多个表进行多次插入)
  3. 写入结果文件(主要是读取的结果,但有时我们无法将读取的数据处理成可以连贯插入的内容)

我目前在一组阅读器中有#1(每个文件格式一个),在单个Writer类中有#2和#3。我感觉写入结果文件应该是与将数据写入数据库分开的一个步骤,但我不确定如何做到这一点。

  1. step侦听器
  2. 任务(?)

是否有其他选择,哪种选择将是Spring批处理的设计方式?

共有1个答案

屠嘉勋
2023-03-14

您可以将当前的ItemWriter拆分为两个ItemWriter并使用CompositeItemWriter作为块编写器。这将按照您指定的顺序委托给您的两个Writer。

 类似资料:
  • 我的情况: 我在readerItem中从db读取了类A。然后我需要处理这个类A并创建我在item处理机中做的类B。最后,我将这个类B保存到itemWriter中的db中。 问题:在处理过程中,我还需要创建具有类B外键的类C(约1 mil记录)并保存该类C。 我不能做这样的事情:因为正如我写的,我有大约100万条记录,我需要在内存中存储大约2gb的空间。所以我应该如何解决这个问题。 更新: 可能的解

  • 在我的Spring boot和Spring batch应用程序中,我有这样一个步骤: 我的作家是一个空的,如下所示: 现在,在我的处理器中,我有: 问题:由于所有对象都传递给处理器,我可以在处理器本身中处理它们,而不是使用任何转换等,因为我的目的通过使用处理器来解决,这是一个好的做法吗?或者我必须使用作家/自定义作家来完成工作?

  • 关于skip,我有一个非常基本的问题。我正在使用spring示例提供的spring batch simple cli项目,并试图理解跳过行为。它有一个非常基本的示例读取器,可以读取字符串数组(我将其修改为从Hellowworld 1到Hellowworld 10的10个字符串列表中读取),还有一个基本的编写器,可以登录到控制台。writer抛出java。每写一次都有例外。我在作业配置中增加了4个跳

  • 我的要求是为不同格式的文件(PSV和CSV)轮询两个不同的目录,并使用Spring批处理它。 我使用入站通道适配器轮询目录。但是,我无法找到一种方法来根据文件类型调用相应的阅读器及其标记器和字段映射器。 例如,如果它是psv-调用PSV阅读器,如果它是csv-调用CSVReader,CSV线路映射器 任何帮助都将不胜感激。 谢谢

  • 在我的spring-batch-integration应用程序中,文件轮询调用eachfile的batchjob,该应用程序可以在多个服务器(节点)上运行,但它们都应该读取一个公共目录。代码如下 } 现在,当我调用Spring批处理并尝试使用flatfileitemreader读取该文件时,它给了我