1

基于内容的路由和java批处理JSR 352jBeretSpring Batch)?

尝试实现一些简单的“真实世界”批处理作业,因为“hello world”看起来很有希望。似乎我没有正确理解这个概念——但实际的发布接缝对于“现实世界”的例子来说毫无用处。

- read 5mio lines (ItemReader works fine)
- write to three different filed/resources based on the content of the line read

“直观”的方法是:

  • 配置三个写入器(例如ItemWriterA, ItemWriterB, ItemWriterC)。但是:一个块中只有一个作家是可能的 - 为什么这个限制?

  • 添加一个决定并根据您的决定使用编写器。但是:决策不能包含在混蛋中——为什么会有这个限制?

使用 Java Batch 执行此操作的正确方法是什么JSR 352?欢迎任何提示。

Java Batch - 可能是

4

1 回答 1

1

您需要在单个 ItemWriter 中实现逻辑。规范定义的框架在这​​里对您没有帮助。SpringBatch 有一个CompositeItemWriter可以帮助处理这种用例,尽管它特定于 SpringBatch 并且不能与 Liberty(或者据我所知,JBeret)等其他 JSR 352 实现一起使用。

在规范中不包括“儿童作家”的一个理由是,就像你的情况一样,有一个特定于应用程序的逻辑来决定向孩子们写(或不写)。但这是 JSR 352 可以使用更多样本并可能增强规范本身的领域。

这不是一个很好的答案,但我不想让这个问题没有答案。

于 2018-01-21T23:11:54.123 回答