在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对象每次任务执行时都是不同的。因此,你需要在任务完成后获取相应的任务实例来标记任务为成功。