[英]Airflow - Run a dag every 2h
我有一個在 MySQL 表中插入一些記錄的 dag,我想每 2 小時運行一次我的 dag。 為此,我有以下代碼:
from datetime import timedelta, datetime
import pymysql
import airflow
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from airflow.operators import MySqlOperator
default_args = {
'owner': 'airflow',
'start_date': datetime(2021, 4, 1),
'depends_on_past': False
}
dag = DAG(dag_id='mysql_insert',
default_args=default_args,
schedule_interval='* */2 * * *',
dagrun_timeout=timedelta(seconds=5))
def mysql_conn(servername, user, password, database):
conn = pymysql.connect(user=user
, password=password
, host=servername
, port=3306
, database=database)
return conn
conn = mysql_conn('', '', '', '')
def insert_data():
src_cursor = conn.cursor()
src_cursor.execute("INSERT INTO my_table VALUES('NA',CURRENT_TIMESTAMP())")
conn.commit()
task = PythonOperator(
task_id='insert_records'
,python_callable=insert_data
,dag=dag)
task
但是,當我激活我的 dag 時,它每 10 秒加載一次數據。
我做錯了什么?
謝謝你的幫助!
您已將start date
設置為 2021-04-01 並且在 dag 定義中未設置catchup
,因此默認情況下為true
。 如果您查看作業執行(轉到瀏覽 -> Dag 運行),您會發現 dag 運行自開始日期以來已開始,並且正在趕上 state。 您將看到從 2021-04-01 開始的execution date
。 如果您想跳過這些追趕運行,請在 dag arguments 中將catchup
標記為False
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.