我有一些失败的 DAG,比方说从 1 月 1 日到 2 月 20 日。从那天起,他们都成功了。
我尝试使用 cli (而不是使用 Web UI 执行 20 次):airflow clear -f -t * my_dags.my_dag_id
但我有一个奇怪的错误:
airflow: error: unrecognized arguments: airflow-webserver.pid airflow.cfg airflow_variables.json my_dags.my_dag_id
编辑 1:
就像@tobi6 解释的那样,
*
确实造成了麻烦。知道了这一点,我尝试了这个命令:
airflow clear -u -d -f -t ".*" my_dags.my_dag_id
但它只返回失败的任务实例(
-f
标志)。 -d
和 -u
标志似乎不起作用,因为下游和上游的任务实例被忽略(不返回)。编辑 2:
就像@tobi6 建议的那样,使用
-s
和 -e
允许选择日期范围内的所有 DAG 运行。这是命令:airflow clear -s "2018-04-01 00:00:00" -e "2018-04-01 00:00:00" my_dags.my_dag_id.
但是,添加
-f
上面命令的标志只返回失败的任务实例。是否可以选择日期范围内所有失败 DAG 运行的所有失败任务实例?
最佳答案
如果您使用星号 *
在Linux bash 中,它会自动扩展目录的内容。
这意味着它将用当前工作目录中的所有文件替换星号,然后执行您的命令。
这将有助于避免自动扩展:
"airflow clear -f -t * my_dags.my_dag_id"
关于airflow - 如何在 Airflow 中使用 CLI 清除失败的 DAG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50130975/