在Airflow中,可以使用PythonOperator
或其他operator来执行需要在任务中执行的代码。在任务成功完成后,可以使用task_instance
对象来标记任务为成功。
以下是示例代码:
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime
def my_task():
# 执行你的Python代码
pass
dag = DAG('my_dag', start_date=datetime(2021, 1, 1), schedule_interval='@daily')
task = PythonOperator(
task_id='my_task_id',
python_callable=my_task,
dag=dag
)
# 标记任务为成功
task_instance = task.get_task_instance()
task_instance.set_state(state='success')
在上述代码中,我们定义了一个DAG和一个PythonOperator
任务,并将task_id
设置为'my_task_id'
。PythonOperator
执行my_task()
函数,你可以在该函数中编写你的Python代码。在任务成功完成后,使用task.get_task_instance()
方法可以获取任务实例,然后使用set_state()
方法将任务标记为成功。
请注意,在任务执行期间,因为Airflow需要跟踪任务的状态和进度,所以task_instance
对象每次任务执行时都是不同的。因此,你需要在任务完成后获取相应的任务实例来标记任务为成功。