【问题标题】:When using spring cloud data flow to schedule jobs, does the application instance get deployed/undeployed?使用 Spring Cloud Data Flow 调度作业时,应用程序实例是否被部署/取消部署?
【发布时间】:2019-07-22 06:39:48
【问题描述】:

当使用 Spring Cloud Dataflow 调度作业时,支持该作业的应用程序是按计划部署然后取消部署,还是持续运行?

我试图弄清楚按计划部署/取消部署流以支持运行复杂的日常任务是否更节省资源,或者如果我们使用作业调度功能,我们是否会自动获得。

【问题讨论】:

    标签: spring-cloud-stream spring-cloud-dataflow


    【解决方案1】:

    让我们从 SCDF 中的非调度程序工作流开始。

    当您将批处理作业作为任务启动时,SCDF 会解析已注册的任务应用程序,并将其部署为将任务作为目标平台中的短期应用程序运行。

    例如,在本地服务器中,任务应用程序执行其操作,然后 Java 进程干净地关闭。在 CF-server 中,应用程序作为 Cloud Foundry 中的短期 CF 任务运行,当应用程序操作完成时,运行应用程序的容器将正常关闭。同样,在 K8s-server 上,运行任务的 pod/job 会在应用程序完成操作时关闭。

    现在,如果您从 SCDF 安排任务,上述所有内容仍适用于任务应用程序。唯一的区别是,调度程序将以重复的节奏(即 cron-job 表达式评估)启动任务而不是 SCDF;但是,应用程序的生命周期是相同的。

    换句话说,Task 应用程序将运行一个短期资源,无论是否涉及调度程序。这些应用在不主动运行时不会继续消耗资源。

    【讨论】:

    • 完美——这听起来很棒。它可能不适合 cmets,我担心这个问题会被标记为基于“意见”,但我正在寻找关于何时使用流与何时使用作业的指导。我们对 SCDF 的大多数用例都是每日批处理作业类型功能(我刚刚回答了我自己的问题吗),但我发现流更容易以编程方式推理。使用短期流来运行批处理是一种合理的方法吗? 1或其他是否有任何固有的优势/劣势?
    猜你喜欢
    • 1970-01-01
    • 2020-05-30
    • 2019-01-18
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    相关资源
    最近更新 更多