当前位置: 首页 > 知识库问答 >
问题:

Spring云数据流-运行任务后获取执行ID

郝昊东
2023-03-14

目前,我正在从Spring XD作为我的工作流和运行时环境转移到Spring Cloud DataFlow和Apache Airflow。我想在Airflow中创建工作流,并使用自定义的Airflow操作员通过REST-API在Spring Cloud DataFlow服务器上运行Spring Cloud任务。

可以使用:

curl -X GET http://SERVER:9393/tasks/deployments/...

不幸的是,DataFlow在此请求中不返回作业执行ID,以创建用于监视应用程序的简单方法。有没有办法以同步方式获取此id?因为获取特定作业的最后一次执行可能会导致错误,例如,如果我同时运行多个相同的作业,则会丢失作业执行。

在Spring DataFlow上,我正在运行Spring Batch作业,所以也许更好的方法是以某种方式设置执行作业id并将其作为输入参数传递?

共有1个答案

李康安
2023-03-14

尝试使用以下注释从bean收集任务信息:

public class MyBean {

    @BeforeTask
    public void methodA(TaskExecution taskExecution) {
    }

    @AfterTask
    public void methodB(TaskExecution taskExecution) {
    }

    @FailedTask
    public void methodC(TaskExecution taskExecution, Throwable throwable) {
    }
}
 类似资料:
  • 每次我们启动spring云任务时,它都会启动一个新的jvm(java.exe),所以如果启动了25个任务,那么它就会启动25个jvm。 我想知道如何同时限制所有任务(为所有部署的JAR运行)的总数? 假设我必须将一次运行的所有任务的总数限制为25个。在SCDF中有什么设置我们可以做到这一点吗? 请让我知道

  • 我试图了解运行批处理任务时通过Spring Cloud数据流WRT数据源配置的预期行为。 Spring批处理数据库表(Batch\u JOB\u EXECUTION等)是否在SCDF数据库本身中?当通过SCDF启动任务时,似乎发生了一些神奇的事情,它在SCDF数据库中创建了这些表,并似乎在使用它们。它似乎正在将SCDF数据源注入我的应用程序? 我目前在localhost服务器版本2.0.1上运行。

  • 我在Openshift集群上安装了一个Spring Cloud数据流。我尝试注册一个应用程序,然后创建一个任务,一切都很好,但当我试图安排任务时,我遇到了以下异常: 我不知道这是什么意思,我是Dataflow的新手。我不明白为什么他试图使用Maven而不是kubernetes部署器,也不明白为什么我会出现这个错误。有人能再给我解释一下吗? 顺便说一句,我将这些应用程序注册为docker容器。

  • 上周,我安装了基于Docker/Kubernetes的Spring Cloud数据流版本 虽然没有明显的错误,但事情并不正常。 我可以在web UI和Spring Cloud数据流Shell中创建流和任务,但没有运行。 我对任务最感兴趣。

  • 我实现了Spring云任务示例中给出的示例批处理作业示例。其中使用的 Spring 引导版本是 2.0.1.RELEASE。由于我必须移植另一个作业,因此我必须启动云任务,因此我想找到兼容的最旧版本。使用 1.3.2.RELEASE 创建的批处理作业的 jar 作为 Spring 引导版本成功运行。但是当我在将其添加为应用程序后从 Spring 云数据流的 UI 运行它时,出现以下错误:

  • 我在build.gradle中使用以下依赖项: } 我已经注释了一行 为了避免不匹配,但仍然得到以下错误: 错误:任务“:app:dexDebug”的执行失败