是否可以使用 Spring Cloud DataFlow 在无限运行的应用程序内编排长时间运行的外部批处理作业?



我们有字符串批处理应用程序,每个应用程序中都定义了触发器。

每个 Batch 应用程序都运行数十个具有不同参数的类似作业,并且每个应用程序能够使用 1400 MiB 来执行此操作。

我们使用几年前已弃用的Spring Batch Admin来启动单个作业并简要了解作业中的情况。迁移指南建议将Spring Batch Admin替换为Spring Cloud DataFlow。

Spring Cloud DataFlow 文档说了从 Maven repo 中获取 jar 并使用一些参数运行它。我不喜欢等待 20 秒的应用程序下载、2 分钟的应用程序启动以及所有这些安全/证书/防火墙问题(如何跨内部网下载专有 jar?

我想通过 IP/port 在 Spring Cloud DataFlow 中注册现有应用程序,并将作业定义传递给 Spring Batch 应用程序并监控执行(包括停止作业的能力(。Spring Cloud DataFlow是否可用于此?

这里要解开的东西很少。这是一个尝试。

Spring Cloud DataFlow 文档说了从 Maven repo 中获取 jar 并使用一些参数运行它。我不喜欢等待 20 秒的应用程序下载、2 分钟的应用程序启动以及所有这些安全/证书/防火墙问题

的想法

是的,有一个应用解析过程。但是,下载后,我们将重复使用Maven缓存中的应用程序。

至于 2 分钟的引导窗口,这取决于 Boot 和配置对象的数量,当然还有您的业务逻辑。也许在您的情况下,所有这些都是 2 分钟。

如何跨内联网下载专有 JAR ?

有一个选项可以通过代理解析来自防火墙后面托管的 Maven 工件工厂的工件 - 我们有使用此模型的专有 JAR 的用户。

每个 Batch 应用程序都运行数十个具有不同参数的类似作业,并且每个应用程序能够使用 1400 MiB 来执行此操作。

您可能需要考虑"撰写任务"功能。它不仅提供了将子任务作为直接无环图启动的能力,而且还允许基于每个节点的退出代码进行转换,以进一步拆分和分支以启动更多任务。当然,所有这些都会自动记录在每个执行级别,以便从 SCDF 仪表板进行进一步跟踪和监控。

我想通过 IP/port 在 Spring Cloud DataFlow 中注册现有应用程序,并将作业定义传递给 Spring Batch 应用程序并监控执行(包括停止作业的能力(。

就批处理作业包装到Spring Cloud Task Apps而言,是的,您可以在SCDF中注册它们并在DSL中使用它,或者将它们拖放到可视化画布中,以创建一致的数据管道。我们在这里和这里有一些"批处理作业即任务"示例。

相关内容

最新更新