要实现“Airflow TriggerDagRunOperator什么都不做”,可以通过创建一个自定义的Operator来实现。以下是一个示例代码:
from airflow.models import BaseOperator
from airflow.utils.decorators import apply_defaults
class DoNothingOperator(BaseOperator):
@apply_defaults
def __init__(self, *args, **kwargs):
super(DoNothingOperator, self).__init__(*args, **kwargs)
def execute(self, context):
self.log.info('DoNothingOperator is doing nothing.')
return
然后,可以在DAG中使用这个自定义的Operator来实现什么都不做的功能:
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
from datetime import datetime
dag = DAG(
dag_id='do_nothing_dag',
start_date=datetime(2021, 1, 1),
schedule_interval='@once'
)
start_task = DummyOperator(task_id='start_task', dag=dag)
do_nothing_task = DoNothingOperator(task_id='do_nothing_task', dag=dag)
end_task = DummyOperator(task_id='end_task', dag=dag)
start_task >> do_nothing_task >> end_task
在这个示例中,DoNothingOperator的execute方法什么都不做,只是打印一条日志信息。然后,可以将它添加到DAG中的任务流中,作为一个任务节点。