一、aiflow觸發DAG有兩種方式:
1、內部觸發:
也就是通過設置參數 schedule_interval 來觸發DAG,時間一到,DAG就會執行
2、外部傳參觸發:
import requests
import json
data={
# "ipaddr":"10.0.6.165",
# "user":"postgres",
"lucyIp":"10.21.154.76",
"execTime":"2h"
}
url="http://10.0.0.53:8082/api/experimental/dags/dag_id/dag_runs"
data_info={}
data_info["conf"]=data
data_info['execution_date'] = '2019/09/26 03:10:35' #指定DAG執行時間
headers = {'Content-type': 'application/json'}
r = requests.post(url, data=json.dumps(data_info), auth=(user, password),headers=headers)
print(r.text)
print(data)
上面是通過web傳參觸發 ,設置的execution_date時間會指定DAG執行時間
參考鏈接:https://blog.csdn.net/YF_Li123/article/details/84075588
3、注意:兩種DAG觸發方式不能共存
通過內部觸發DAG,就不能用外部傳參觸發DAG ;用外部傳參觸發DAG就不能用內部觸發DAG
二、服務重啓 ,webserver重啓一樣
cat airflow-scheduler.pid #查看pid
ps -ef | grep airflow #kill掉相關pid
rm airflow-scheduler.pid #先刪除Pid文件
airflow scheduler -D #後臺重啓
airflow scheduler #前臺重啓