我们有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 回答
在这里解开的东西很少 . 这是一次尝试 .
是的,有一个应用程序解析过程 . 但是,一旦下载,我们将重用Maven缓存中的App .
至于2分钟的自举窗口,它取决于Boot和配置对象的数量,当然还有你的业务逻辑 . 也许在你的情况下,所有这些都是2分钟 .
可以通过proxies从防火墙后面托管的Maven工件中解析工件 - 我们在此模型上拥有专有JAR的用户 .
您可能需要考虑Composed Task功能 . 它不仅能够将子任务作为直接非循环图启动,而且还允许基于每个节点的退出代码进行转换,以进一步拆分和分支以启动更多任务 . 当然,所有这些都会自动记录在每个执行级别,以便从SCDF仪表板进一步跟踪和监控 .
至于批处理作业被包装到Spring Cloud Task Apps中,是的,您可以在SCDF中注册它们并在DSL中使用它或将它们拖放到可视画布中,以创建连贯的数据管道 . 我们有一些"batch-job as task"样本here和here .