【问题标题】:Content based routing and java batch JSR 352 (jBeret, Spring Batch)?基于内容的路由和 java 批处理 JSR 352(jBeret,Spring Batch)?
【发布时间】:2018-01-19 12:40:16
【问题描述】:

基于内容的路由和 java 批处理 JSR 352 (jBeret, Spring 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 执行此操作的正确方法是什么? 欢迎任何提示。

【问题讨论】:

    标签: spring-batch jsr352 java-batch jberet


    【解决方案1】:

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

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

    这不是一个很好的答案,但我不想在没有答案的情况下留下这个问题。

    【讨论】:

    • 感谢您的确认。那是我所期待的。换句话说 - 另一个无用的 JSR - 用于“现实世界”编程。
    • 在玩耍时发现了 JSR 中缺少的一些其他东西 - 并确认该方法很好,但缺少很多东西,并且没有可能解决问题。 - 调用的批处理
    • 如果有人需要做更多“现实世界”的事情,请查看此解决方案以了解 JSR 352 如何工作。 *** 数据管道 - 快速免费(10,000 条记录/作业).. 在另一个选项中(不是免费版本)。 northconcepts.com Java 轻量级 ETL 框架 *** Pentaho 数据集成 - Java API wiki.pentaho.com/display/EAI/… 从另一个 Java 程序调用转换或作业
    猜你喜欢
    • 2014-07-15
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多