smartpip支持所有Airflow的API接口,为了更方便使用可以采用smartchart的API服务功能 以下以触发调度为例
- 在smartchart数据集中新建一个python数据源的数据集
填写如下代码
from etl.smartpip import get_auth_hearder import requests header=get_auth_hearder() url='{url}/api/v1/dags/{dag_id}/dagRuns' ds=requests.post(url=url,headers=header,json={"conf":{}}).json()
如果你想先获取DAG的执行状态再触发,可以增加如下判断
from etl.smartpip import get_auth_hearder import requests header=get_auth_hearder() url='{url}/api/v1/dags/{dag_id}/dagRuns?limit=1&order_by=-execution_date' ds=requests.get(url=url,headers=header).json() status=ds['dag_runs'][0]['state'] if status!='running': url='{url}/api/v1/dags/{dag_id}/dagRuns' ds=requests.post(url=url,headers=header,json={"conf":{}}).json()
调用方法,请参考smartchart标准的API服务调用