Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 清除任务气流_Python_Python 3.x_Airflow_Airflow Scheduler - Fatal编程技术网

Python 清除任务气流

Python 清除任务气流,python,python-3.x,airflow,airflow-scheduler,Python,Python 3.x,Airflow,Airflow Scheduler,我正在使用蟒蛇3和气流。我有一个日常流程,其中有些任务有时会失败 我想知道,如果有人知道,如何获得失败任务的列表,至少在流程结束时。我可以更改代码。我可以以某种方式返回包含每个任务名称及其结果的dict,但我认为这必须是一种更简单的方法 一旦流程“完成”,我希望它清除那些任务状态(我是指失败和上游失败的任务)并自动重试它们 我读过一些关于: airflow clear -t task_name <dag_name> 气流清除-t任务\u名称 所以我想我只需要迭代任务名称来清除它们

我正在使用蟒蛇3和气流。我有一个日常流程,其中有些任务有时会失败

我想知道,如果有人知道,如何获得失败任务的列表,至少在流程结束时。我可以更改代码。我可以以某种方式返回包含每个任务名称及其结果的dict,但我认为这必须是一种更简单的方法

一旦流程“完成”,我希望它清除那些任务状态(我是指失败和上游失败的任务)并自动重试它们

我读过一些关于:

airflow clear -t task_name <dag_name>
气流清除-t任务\u名称
所以我想我只需要迭代任务名称来清除它们,但我需要知道它们是谁


非常感谢

如果是我,我会编写自己的Python脚本,通过加载气流的模型(
aiffort.models.TaskInstance
)和数据库连接
aiffort.settings.Session
,找到失败的任务,然后通过脚本清除它们,从而与气流进行交互。Airflow已经有了清除任务的代码,这可能提供了一个有用的起点。

为什么要这样做,而不设置任务的重试次数和重试间隔?是否有特殊要求必须在整个运行结束时进行?过程的一部分是下载一些上传到服务器的文件。我认为有些文件并没有完全上传,下载的时候进程就失败了。等待过程结束后重试这些下载对我来说不是问题(我的过程正在执行其他任务,不下载一个文件对我来说不是一个障碍),但这不是必要的。我更喜欢在整个过程结束后重试。我不明白这样做的好处是什么,也不把一个任务当作可以重新启动的原子事件。此外,在Airflow中实现失败后立即重试,这是您的方式-我没有听说过,但这可能是可能的。如果我按照您的要求执行,据我所知,我必须使用retry参数更改DAG中的几乎每个任务实例(所有可能失败的任务实例)。如果我在等待上传一个文件,那么在整个过程结束时重试会给我一个好处,那就是我几乎可以肯定我已经等待了足够的时间让它完成完整的上传。如果我能得到失败任务的列表,我只需要做一次迭代,而不是改变每一个可能失败的任务实例。谢谢你的解释。我仍然不确定这是否可能与气流。