首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Batch中的块处理有效地将您限制为一个步骤?

Spring Batch中的块处理有效地将您限制为一个步骤?
EN

Stack Overflow用户
提问于 2012-03-01 15:03:43
回答 1查看 2.6K关注 0票数 0

我正在编写一个Spring批处理应用程序来完成以下工作:有一个输入表(PostgreSQL DB),有人不断地向其中添加行-这基本上就是添加工作项。对于这些行中的每一行,我需要从另一个数据库获取更多数据,进行一些处理,然后执行输出事务,该事务可以是多个SQL查询访问多个表(出于一致性原因,这需要是一个事务)。

现在,输入和输出之间的部分应该是模块化的-它已经有3-4个逻辑上分离的东西,将来还会有更多。这个流程不需要是线性的-下一步要做的处理可以依赖于前一步的结果。简而言之,这基本上类似于您可以使用作业中的步骤设置的流程。

我的主要问题是:通常单个块处理步骤同时具有ItemReader和ItemWriter,即在单个步骤中输入到输出。那么,我是否应该将所有处理步骤都包含在单个ItemProcessor中呢?如何使单个ItemProcessor本身成为有状态工作流?

另一种选择是将每一步都作为微线程实现,然后自己编写两个微线程,以表现为ItemReader和ItemWriter。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-07 01:17:21

找到了答案-是的,你实际上被限制在一个单一的步骤。但是:

1)对于线性工作流,您可以“链接”项处理器--即创建一个复合项处理器,您可以为其提供所有通过applicationContext.xml执行实际工作的项处理器。复合项处理器只是一个接一个地运行它们。这就是我现在正在做的。

2)您始终可以将内部子流创建为单独的spring批处理工作流,并通过类似于上面复合项处理器的项处理器中的代码来调用它。我将来可能会转到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9511980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档