smartpip支持所有Airflow的API接口,为了更方便使用可以采用smartchart的API服务功能 以下以触发调度为例
- 在smartchart数据集中新建一个python数据源的数据集
- 填写如下代码
from etl.smartpip import get_auth_hearder
import requests
header=get_auth_hearder()
url='{smartpip_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='{smartpip_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='{smartpip_url}/api/v1/dags/{dag_id}/dagRuns'
ds=requests.post(url=url,headers=header,json={"conf":{}}).json()
- 调用方法,请参考 smartchart标准的API服务调用