首页 文章

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

提问于
浏览
0

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

每个Batch应用程序运行数十个具有不同参数的类似作业,并且每个应用程序可以使用1400 MiB .

我们使用几年前弃用的Spring Batch Admin来启动个人工作并简要概述工作中的工作 . 迁移指南建议使用Spring Cloud DataFlow替换Spring Batch Admin .

Spring Cloud DataFlow文档讲述了从Maven repo中获取jar并使用一些参数运行它 . 我不想让应用程序下载等待20秒,应用程序启动等待2分钟以及所有安全/证书/防火墙问题(如何通过内部网下载专有jar?) .

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

1 回答

  • 1

    在这里解开的东西很少 . 这是一次尝试 .

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

    是的,有一个应用程序解析过程 . 但是,一旦下载,我们将重用Maven缓存中的App .

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

    我如何跨内联网下载专有jar?

    可以通过proxies从防火墙后面托管的Maven工件中解析工件 - 我们在此模型上拥有专有JAR的用户 .

    每个批处理应用程序运行数十个具有不同参数的类似作业,并且能够以每个应用程序1400 MiB的速度执行此操作 .

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

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

    至于批处理作业被包装到Spring Cloud Task Apps中,是的,您可以在SCDF中注册它们并在DSL中使用它或将它们拖放到可视画布中,以创建连贯的数据管道 . 我们有一些"batch-job as task"样本herehere .

相关问题