目前,我正在从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