使用Spring Cloud DataFlow在无限运行的应用程序内部协调长期运行的外部批处理作业是否可行?

时间:2018-06-20 08:00:14

标签: spring-boot spring-batch spring-cloud-dataflow spring-batch-admin

我们有String Batch应用程序,每个应用程序中都定义了触发器。

每个批处理应用程序使用不同的参数运行数十个相似的作业,并且每个应用程序能够实现1400 MiB的操作。

我们使用几年前已弃用的Spring Batch Admin来启动单个作业并简要概述作业的进展。迁移指南建议用Spring Cloud DataFlow替换Spring Batch Admin。

Spring Cloud DataFlow文档介绍了如何从Maven存储库中获取jar并使用一些参数运行它。我不希望等待20秒的时间来下载应用程序,等待2分钟才能启动应用程序以及所有安全性/证书/防火墙问题(我如何在Intranet上下载专有的jar?)。

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

1 个答案:

答案 0 :(得分:1)

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

  

Spring Cloud DataFlow文档介绍了如何从Maven存储库中获取jar并使用一些参数运行它。我不希望等待20秒钟来下载应用程序,等待2分钟才能启动应用程序以及所有安全性/证书/防火墙问题

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

对于2分钟引导窗口,取决于引导和配置对象的数量,当然还取决于您的业务逻辑。也许您的情况是2分钟。

  

如何在Intranet上下载专有的jar?

有一个选项可以通过proxies来解决来自防火墙后面托管的Maven工件的工件-我们在该模型上拥有专用JAR的用户。

  

每个批处理应用程序使用不同的参数运行数十个相似的作业,并且每个应用程序能够实现1400 MiB的操作。

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

  

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

只要将批处理作业打包到Spring Cloud Task Apps中,是的,您就可以在SCDF中注册它们并将其在DSL中使用,或者将它们拖放到可视画布中,以创建一致的数据管道。我们有一些“作为任务的批处理”样本herehere

相关问题