要在同一个DAG中以不同的时间运行任务,可以使用Airflow的PythonOperator
和datetime
模块来实现。下面是一个示例代码:
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime, timedelta
def task1():
current_time = datetime.now()
print(f"Task 1 executed at {current_time}")
def task2():
current_time = datetime.now()
print(f"Task 2 executed at {current_time}")
default_args = {
'owner': 'airflow',
'start_date': datetime(2022, 1, 1),
'retries': 1,
'retry_delay': timedelta(minutes=5)
}
with DAG('example_dag', default_args=default_args, schedule_interval='0 0 * * *') as dag:
t1 = PythonOperator(
task_id='task1',
python_callable=task1,
dag=dag
)
t2 = PythonOperator(
task_id='task2',
python_callable=task2,
dag=dag
)
t1 >> t2
在上面的代码中,我们定义了两个任务task1
和task2
,它们分别打印出当前的执行时间。然后,我们创建了一个DAG,并使用PythonOperator
将这两个任务添加到DAG中。schedule_interval='0 0 * * *'
指定了DAG的调度间隔为每天的午夜。
这样,当DAG运行时,task1
和task2
将以不同的时间执行。