from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta
'''任務參數配置'''
default_args = {
"owner": "airflow", # 用戶名的任務的所有者
"depends_on_past": False, # 當設置爲true時,任務實例將依次運行,同時依賴上一個任務的計劃成功。允許start_date的任務實例運行。
"start_date": datetime(2018, 12, 1), # 開始時間
"email": ["[email protected]"],
"email_on_failure": False,#
"email_on_retry": False,#郵件重發
"retries": 1, # 重試策略 (這裏是重試一次)
"retry_delay": timedelta(seconds=5),#每五秒重試一次
"dag_concurrency": 1, # 調度器允許併發運行的任務實例的數量
"max_active_runs_per_dag": 1 # 每個DAG的最大活動DAG運行次數
# 'queue': 'bash_queue',#運行此作業時要定位到哪個隊列
# 'pool': 'backfill',
# 'priority_weight': 10,
# 'end_date': datetime(2016, 1, 1),
}
#schedule_interval 是要自己設置的時間格式在底下 cron
dag = DAG("Day", default_args=default_args, schedule_interval='0 8 * * 1-5 0')
t1 = BashOperator(
task_id="update_kl_DayMin", # 任務的唯一,有意義的id
bash_command='python /usr/local/airflow/dags/Day.py ', # 要執行的命令,命令集或對bash腳本(必須爲'.sh')
dag=dag,
)
schedule_interval 是任務時間設定:與Linux cron 時間是不同的
airflow cron 表達式: * * * * * * (分 時 月 年 周 秒)