Airflow 合并分支管操作器和PythonVirtualenvOperator

Airflow 合并分支管操作器和PythonVirtualenvOperator,airflow,Airflow,我有一个pythonvirtualenvooperator,它从数据库中读取一些数据-如果没有新数据,那么DAG应该在那里结束,否则它应该调用其他任务,例如 #dag.py 加载\u数据>>[如果\u数据,如果\u没有\u数据]>>另一个\u任务>>最后一个\u任务 我知道可以使用PythonBranchOperator完成,但我不知道如何将venv和分支操作符组合起来 它可行吗?这可以使用Xcom解决。 load\u date可以推送它处理的记录数(新数据) 您的管道可以是: def cho

我有一个
pythonvirtualenvooperator
,它从数据库中读取一些数据-如果没有新数据,那么DAG应该在那里结束,否则它应该调用其他任务,例如

#dag.py
加载\u数据>>[如果\u数据,如果\u没有\u数据]>>另一个\u任务>>最后一个\u任务
我知道可以使用
PythonBranchOperator
完成,但我不知道如何将venv分支操作符组合起来


它可行吗?

这可以使用Xcom解决。
load\u date
可以推送它处理的记录数(新数据)

您的管道可以是:

def choose(**context):
    value = context['ti'].xcom_pull(task_ids='load_data')
    if int(value)>0:
        return 'if_data'
    return 'if_no_data'

branch = BranchPythonOperator(
    task_id='branch_task',
    provide_context=True, # Remove this line if Airflow>=2.0.0
    python_callable=choose)

load_data >> branch >>[if_data,if_no_data]>>another_task>>last_task

PythonVirtualenvOperator是加载数据吗?您是否考虑过使用xcom返回true/false?如果触发了
如果没有数据
,即
另一个任务
最后一个任务
应该只在
如果数据
Nvm之后运行,我想停止,我想添加
另一个任务。设置上游(如果数据)
最后一个任务。设置上游(另一个任务)
加载数据>>分支机构>>[如果有数据,则无数据]
完成交易之前