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

每个资源的Spring Batch MultiResourceItemReader块提交

卞琨
2023-03-14

我目前有一个Spring批处理作业,它执行以下操作:

  1. 使用委托给FlatFileItemReader的MultiResourceItemReader读取csv文件列表。
  2. 将每个文件分成块,并将每个块写入为JMS消息,每个消息包含块中的行列表和JSON格式的底层资源的文件名。

是否有任何干净的方法来防止阅读器将来自不同文件资源的行包含在同一块中?

编辑:我认为解决方案需要使用自定义块完成策略来确定当前正在读取的项是否来自与前一行相同的资源,但不确定这有多可行。有什么想法吗?。

共有1个答案

衡子琪
2023-03-14

我更改了我的实现,使用MultiResourcePartitioner为每个文件创建分区步骤,现在一切都可以工作了。

 类似资料:
  • 我的问题是我不理解各种Spring批处理上下文。参考留档解释了如何将数据传递给未来的步骤。但是我如何在步骤内的读取器和写入器组件之间传递数据。步骤上下文。是否有块上下文?我以前在编写分区程序时在执行上下文之前使用过。但这些是并行执行的。 我现在需要做一个有序的手术。它基本上是一个jdbc导入作业,但每个文件都需要提交,否则它们就是外键约束。 我可以获得单个文件资源的行数的最简单的地方是在Multi

  • 我使用open-api-3标准创建了一个swagger.json,以便能够使用工具swagger-codegen生成客户端sdk。我的问题是,每个apiendpoint最终都得到自己的api对象,而不是一个api对象用于所有的APIendpoint。 预期: 实际: 问:如何配置swagger codegen或我的swagger.json来为所有实体/资源只创建一个api对象? 在此示例中,我使用

  • res\drawable\mylayerlistdrawable.xml ----------------------------------------------------------------------------------- 最终答案 在api 21之前的xml可提取资源中,我们不能使用?attr。由aapt在编译时创建的可提取资源。运行时用于动态连接的Attr资源。 解决方案是为

  • 资源模块 资源模块指的是图片、样式、html片段等非脚本模块(在 coolie 的世界里,一切皆是模块)。 使用方法: require('style.css', 'css'); 详细阅读点这里。 demo 初始化目录结构 新建coolie-demo6目录: . └── src 1 directory, 0 files 初始化文件 准备一张图片coolie.png,放在 src 目录下。 然后

  • 是否可以将Gradle配置为构建几个android apk文件,每个文件只使用一个资源类型的文件夹? null 我知道我可以在构建之前简单地移除某些文件夹,但如果我可以“自动”地使它变得更好。 是否可以使用分级“口味”?

  • 这里有一个案例:我有身份服务器、客户端应用程序和资源(API)。身份服务器在endpoint超文本传输协议://身份服务器: 8080/连接/用户信息上提供用户信息。如果您发送带有有效访问令牌的请求,您将获得有关用户的其他信息。如果我需要有关资源的这些信息,我将如何获得它。我有两个想法: 通过客户端获取用户信息。(客户端在userinfoendpoint上发送请求并获取信息,然后使用请求调用API