【问题标题】:Is remote partitioning available with JSR-352 under Spring Batch?Spring Batch 下的 JSR-352 是否提供远程分区?
【发布时间】:2021-05-31 08:20:48
【问题描述】:

我想通过配置在后台配置远程分区的 JSR-352 批处理作业,而不必在作业定义中显式定义控制器/工作器(JSR-352 规范无论如何都不支持) . IBM WebSphere Liberty 通过其“多 JVM”特性提供此功能,您可以在配置文件 (server.xml) 中定义远程分区。

我已经看到传统的 Spring Batch 能够支持远程分区,但只能通过显式的作业定义。我不想使用旧版 Spring Batch。相反,我想构建一个可移植到 Java EE 的解决方案,包括 IBM Liberty。

【问题讨论】:

    标签: spring spring-batch batch-processing partitioning jsr352


    【解决方案1】:

    我不想使用旧版 Spring Batch。相反,我想构建一个可移植到 Java EE 的解决方案,包括 IBM Liberty。

    如果您真的想要一个可移植的解决方案,您需要在 JSR-352 的作业规范语言中定义您的作业并使用以下命令启动它:

    javax.batch.runtime.BatchRuntime.getJobOperator().start(jobName, properties)
    

    现在,如果 JSR-352 未指定如何定义远程分区设置,那么您将无法获得可移植的解决方案。

    请注意 Spring Batch 和 JSR-352 之间存在一些差异,这些差异在 JSR-352 Support 部分中有详细说明。有关分区的差异记录在 here

    【讨论】:

    • 在您引用的分区文档中,它说“在 Spring Batch 中,分区步骤作为 manager/worker 运行。在 JSR-352 中,会发生相同的配置。但是,worker 步骤没有得到官方StepExecutions。因此,对 JsrJobOperator#getStepExecutions(long jobExecutionId) 的调用将只返回经理的 StepExecution。”使用 IBM Liberty,您可以配置环境以便分区是远程的。我的问题是,如果我使用 JSR-352 中的可移植 JSL 语法,我还能在作业 defn 之外配置远程分区的实现吗?
    猜你喜欢
    • 2015-05-19
    • 2014-12-01
    • 1970-01-01
    • 2019-10-14
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    相关资源
    最近更新 更多