Ace*_*rey 9 airflow apache-airflow airflow-scheduler
我有一个dag,我们将部署到多个不同的气流实例和我们的airflow.cfg,dags_are_paused_at_creation = True但对于这个特定的dag,我们希望它打开,而不必通过单击UI手动执行.有没有办法以编程方式进行?
Ace*_*rey 12
如果有其他人遇到此问题,我创建了以下函数:
import airflow.settings
from airflow.models import DagModel
def unpause_dag(dag):
"""
A way to programatically unpause a DAG.
:param dag: DAG object
:return: dag.is_paused is now False
"""
session = airflow.settings.Session()
try:
qry = session.query(DagModel).filter(DagModel.dag_id == dag.dag_id)
d = qry.first()
d.is_paused = False
session.commit()
except:
session.rollback()
finally:
session.close()
Run Code Online (Sandbox Code Playgroud)
提供您的 dag_id 并在您的命令行上运行此命令。
airflow pause dag_id.
Run Code Online (Sandbox Code Playgroud)
有关气流命令行界面的更多信息:https : //airflow.incubator.apache.org/cli.html
airflow-rest-api-plugin插件也可用于以编程方式暂停任务.
暂停DAG
适用于Airflow版本:1.7.0或更高版本
GET - http:// {HOST}:{PORT}/admin/rest_api/api?api = pause
查询参数:
dag_id - string - dag的id
subdir(可选) - 字符串 - 从中查找dag的文件位置或目录
例子:
HTTP:// {HOST}:{PORT} /管理/ rest_api/API的API =暂停&dag_id =为test_id
有关详细信息,请参阅:https: //github.com/teamclairvoyant/airflow-rest-api-plugin
| 归档时间: |
|
| 查看次数: |
4768 次 |
| 最近记录: |