【发布时间】:2019-07-22 06:39:48
【问题描述】:
当使用 Spring Cloud Dataflow 调度作业时,支持该作业的应用程序是按计划部署然后取消部署,还是持续运行?
我试图弄清楚按计划部署/取消部署流以支持运行复杂的日常任务是否更节省资源,或者如果我们使用作业调度功能,我们是否会自动获得。
【问题讨论】:
标签: spring-cloud-stream spring-cloud-dataflow
当使用 Spring Cloud Dataflow 调度作业时,支持该作业的应用程序是按计划部署然后取消部署,还是持续运行?
我试图弄清楚按计划部署/取消部署流以支持运行复杂的日常任务是否更节省资源,或者如果我们使用作业调度功能,我们是否会自动获得。
【问题讨论】:
标签: spring-cloud-stream spring-cloud-dataflow
让我们从 SCDF 中的非调度程序工作流开始。
当您将批处理作业作为任务启动时,SCDF 会解析已注册的任务应用程序,并将其部署为将任务作为目标平台中的短期应用程序运行。
例如,在本地服务器中,任务应用程序执行其操作,然后 Java 进程干净地关闭。在 CF-server 中,应用程序作为 Cloud Foundry 中的短期 CF 任务运行,当应用程序操作完成时,运行应用程序的容器将正常关闭。同样,在 K8s-server 上,运行任务的 pod/job 会在应用程序完成操作时关闭。
现在,如果您从 SCDF 安排任务,上述所有内容仍适用于任务应用程序。唯一的区别是,调度程序将以重复的节奏(即 cron-job 表达式评估)启动任务而不是 SCDF;但是,应用程序的生命周期是相同的。
换句话说,Task 应用程序将运行一个短期资源,无论是否涉及调度程序。这些应用在不主动运行时不会继续消耗资源。
【讨论】: