Spring Cloud DataFlow - 在运行任务后获取执行 ID



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

可以使用:

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

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

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

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

public class MyBean {
    @BeforeTask
    public void methodA(TaskExecution taskExecution) {
    }
    @AfterTask
    public void methodB(TaskExecution taskExecution) {
    }
    @FailedTask
    public void methodC(TaskExecution taskExecution, Throwable throwable) {
    }
}

https://docs.spring.io/spring-cloud-task/docs/current-SNAPSHOT/reference/htmlsingle/#features-task-execution-listener

最新更新