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

在spring批处理中组合CompositeItemProcessor和CompositeItemWriter

阮炯
2023-03-14

我有一个场景,它遵循以下步骤:
1。读者将从表a中得到一个列表a。
2。处理器处理列表A以返回对象A和MimeMessage。
3.writer将对象A写入表B中,并使用MimeMessage发送邮件。

我可以在上面的场景中使用CompositeItemProcessor和CompositeItemWriter吗?如果是,我如何在步骤配置中设置输出对象,以及如何定义发送邮件的ItemWriter将采用MimeMessage和插入数据库的ItemWriter将采用对象A。

对我的问题有什么更好的解决办法吗?

共有1个答案

马权
2023-03-14

如何定义用于发送邮件的ItemWriter将采用MimeMessage或用于插入数据库的ItemWriter将采用对象A。

可以使用ClassifierCompositeItemWriter。此复合编写器使用classifier对项(在您的示例中为类型a或MimeMessage)进行分类,并为每个类型调用一个委托编写器。

 类似资料:
  • 我正在做一个项目,我将使用Spring批处理和Spring集成来创建工作流系统。这个工作流系统应该能够从队列中读取消息,这实际上是来自客户端的作业请求,根据作业请求类型,我需要调用一些7-8系统。 每个系统从某个位置读取输入文件(通常是一个集中存储系统,其中所有输入文件都存储在客户提交的文件中),对其进行处理,然后将其传递给下一个系统,最终我应该能够响应客户端,例如SUCCESS如果它被所有系统成

  • 我有一个Spring批处理作业,它通过SFTP从远程Linux服务器检索文件。远程服务器上的目录是一个包含七天文件(约400个文件)的存档。文件的大小相对较小。 Spring批处理知道哪些文件已经被处理。 当我启动应用程序时。第一次,Spring Batch tasklet检索文件时,Spring Batch会为它已经处理的每个文件生成一个异常: > 在Transformer类中,是否应该检查文件

  • 问题内容: 我的问题与春季批次和交易有关。 假设我为我的步骤之一选择了 50 的 提交间隔 。 还要假设我总共有1000条记录,其中一条记录将导致itemWriter失败,从而导致整个块的回滚(在我的示例中为50条记录)。 确保作业完成(并忽略有问题的块)后将49个有效记录写入数据库的状态有哪些? 问题答案: 经过研究,我得出以下结论: 如果项目编写者未能提交一个块(此处为50个项目)从而导致回滚

  • 需要读取spring批处理中的文件,对其进行处理并将其作为一个提要保存。一个提要包含50%的信息。当我必须持久化提要的最终结果时,我需要使用公共字段将它们组合起来,并像一个项目一样持久化。请参见下面的示例。 我需要保留的最终信息如下: 请建议我如何在我的Spring批工作中实现这一点。 谢谢

  • 关于文章Spring批处理CompositeItemWriter如何管理委托编写器的事务?,对于复合项编写器事务管理,难道不应该将数据源包装在如下所示的事务管理器中吗?没有下面的bean定义,事务管理就无法与Oracle和Hikari CP一起工作。不确定帖子中提供的示例是如何工作的。请澄清

  • 我必须像这样配置批处理作业流。 XML文件阅读器- 我的定制处理器是这样的 这是一个好的方法吗?我看到了一些CompositeProcess、CompositeWriter的例子,但没有一个适合我的案例。 提前谢谢。