Airflow 气流-将给定dag_id和run_id的特定任务_id标记为成功或失败
我可以从外部(使用http请求?)将与dag_id关联的特定任务_id标记为成功/失败,并将运行_id标记为成功/失败 我的任务是外部系统上长期运行的任务,我不希望我的任务轮询系统以查找状态。。因为我们可以同时运行几个1000个任务 理想情况下,我希望我的任务Airflow 气流-将给定dag_id和run_id的特定任务_id标记为成功或失败,airflow,Airflow,我可以从外部(使用http请求?)将与dag_id关联的特定任务_id标记为成功/失败,并将运行_id标记为成功/失败 我的任务是外部系统上长期运行的任务,我不希望我的任务轮询系统以查找状态。。因为我们可以同时运行几个1000个任务 理想情况下,我希望我的任务 发出http请求以启动我的外部作业 睡觉 作业完成后,it(外部系统或我的作业的生成后操作)通知气流任务已完成(由任务id、dag id和运行id标识) 谢谢气流还没有静止终点。然而,你有几个选择 -使用“气流”命令行实用程序将作业标
- 发出http请求以启动我的外部作业
- 睡觉
- 作业完成后,it(外部系统或我的作业的生成后操作)通知气流任务已完成(由任务id、dag id和运行id标识)
谢谢气流还没有静止终点。然而,你有几个选择 -使用“气流”命令行实用程序将作业标记为成功。例如,在python中使用Popen。
-直接更新Airflow DB table task_实例您可以通过将SQL查询直接发送到Airflow的元数据数据库来解决此问题:
UPDATE task_instance
SET state = 'success',
try_number = 0
WHERE
task_id = 'YOUR-TASK-ID'
AND
dag_id = 'YOUR-DAG-ID'
AND
execution_date = '2019-06-27T16:56:17.789842+00:00';
注释:
过滤器非常重要,它通过execution\u date
而不是通过它们的execution\u date
运行。这意味着您确实需要获得DagRun的执行/运行日期才能使其正常运行run\u id
- 添加了
部分,因为如果气流注意到try\u number已经达到极限(try\u number=0
),有时会将任务重置为max\u trys
失败