目前,我正在从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 DataFlow上我正在运行Spring Batch作业,所以也许更好的方法是以某种方式设置执行作业ID并将其作为输入参数传递?
答案 0 :(得分:2)
尝试使用以下注释从bean中收集任务信息:
public class MyBean {
@BeforeTask
public void methodA(TaskExecution taskExecution) {
}
@AfterTask
public void methodB(TaskExecution taskExecution) {
}
@FailedTask
public void methodC(TaskExecution taskExecution, Throwable throwable) {
}
}