当重新运行DAG时,Airflow 默认会加载上次运行的 XCom 值。如果你想要重新运行时不加载上次的 XCom 值,可以使用 clear_xcom_data
参数来清除 XCom 数据。
以下是一个示例解决方法:
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime
# 定义一个函数,用于在 DAG 中执行任务
def my_task():
# 执行任务的代码
...
# 定义一个 DAG
with DAG('my_dag', start_date=datetime(2021, 1, 1), schedule_interval='@daily') as dag:
# 定义一个 PythonOperator,用于执行任务
task1 = PythonOperator(
task_id='task1',
python_callable=my_task,
provide_context=True,
clear_xcom_data=True # 清除 XCom 数据
)
# 定义 DAG 的任务依赖关系
task1
在上面的示例中,我们在创建 PythonOperator 时设置了 clear_xcom_data=True
,这将清除上次运行的 XCom 数据,确保每次重新运行 DAG 时都不会加载上次的 XCom 值。请根据你的实际需求将其应用到你的 DAG 中。