如何处理取消同时运行多个批处理作业的支持?

问题描述 投票:0回答:1

Spring Batch 最近取消了一次运行多个批处理作业的机会。 因此,现在,您仍然可以将多个批处理作业打包到同一个应用程序中,但对于批处理应用程序的每次执行,您只能运行其中一个作业。

我正在使用 Spring Cloud Dataflow 通过 REST 请求执行我的批处理应用程序。

以前一切都很简单,因为您可以运行多个作业(因此向 SCDF 服务器发出 1 个 HTTP 请求即可完成该作业),但现在我必须为每个要执行的作业发出一个 HTTP 请求。每个请求都会启动 Spring Batch 应用程序、执行作业并关闭应用程序。对于我的 5 个作业,这将重复 5 次,这给我的工作流程的总执行时间增加了巨大的开销。在 Spring Cloud Dataflow 上执行所有 5 个作业大约需要一分钟,但作业本身的执行时间并不长,这就是为什么大部分时间都是由 Spring 在启动/关闭应用程序期间提供的开销。

你知道有什么办法可以处理这个问题吗?

我的第一个想法是创建另一个作业来依次执行我的 5 个作业的所有步骤,但我还没有尝试过。也许有人知道更好的解决方案?

spring spring-batch spring-cloud-dataflow
1个回答
0
投票
您可以使用“组合任务”功能,这意味着创建一个任务来编排所有批处理作业。

<task1 || task2 || task3> && task4 在这种情况下,task1

task2
task3
将并行运行,完成后
task4
将被执行。

© www.soinside.com 2019 - 2024. All rights reserved.