Python 气流分支操作器未执行一个分支

Python 气流分支操作器未执行一个分支,python,airflow,Python,Airflow,关于这个/类似问题的其他帖子对我没有帮助。所以我担心我忽略了一些显而易见的事情,但这是事实。我的设置中有几个气流DAG使用BranchPythonOperator,其中一个从不执行特定的分支。以下是相关代码: def check_transport(): date = datetime.today().day; if date == 15 or date == 16: return 'skip_transport' else: return 'tra

关于这个/类似问题的其他帖子对我没有帮助。所以我担心我忽略了一些显而易见的事情,但这是事实。我的设置中有几个气流DAG使用BranchPythonOperator,其中一个从不执行特定的分支。以下是相关代码:

def check_transport():
   date = datetime.today().day;
   if date == 15 or date == 16:
       return 'skip_transport'
   else:
       return 'transport_data'

transport_data = BashOperator(
    task_id = 'transport_data',
    bash_command = '**Bash command to transport data is here and correct**',
    dag = dag)

skip_transport = DummyOperator(
    task_id = 'skip_transport',
    dag = dag)

transport_check = BranchPythonOperator(
    task_id = 'transport_check',
    python_callable = check_transport,
    dag = dag)
transport_check.set_downstream(transport_data)
transport_check.set_downstream(skip_transport)
DAG的树状图显示,在2015年1月1日,它正确地跟随了skip_传输分支,将其标记为成功,并将传输_数据标记为跳过。其他几天显示skip_transport为skip_,transport_数据为白色(无状态),且该分支未执行

传输检查日志显示它打算执行正确的操作:

[2019-01-30 07:44:17,786] {base_task_runner.py:95} INFO - Subtask: [2019-01-30 07:44:17,786] {models.py:1342} INFO - Executing <Task(BranchPythonOperator): transport_check> on 2019-01-29 03:30:00
[2019-01-30 07:44:17,835] {base_task_runner.py:95} INFO - Subtask: [2019-01-30 07:44:17,835] {python_operator.py:81} INFO - Done. Returned value was: transport_data
[2019-01-30 07:44:17,835] {base_task_runner.py:95} INFO - Subtask: [2019-01-30 07:44:17,835] {python_operator.py:106} INFO - Following branch transport_data
[2019-01-30 07:44:17,836] {base_task_runner.py:95} INFO - Subtask: [2019-01-30 07:44:17,835] {python_operator.py:107} INFO - Marking other directly downstream tasks as skipped
[2019-01-30 07:44:17,861] {base_task_runner.py:95} INFO - Subtask: [2019-01-30 07:44:17,861] {python_operator.py:119} INFO - Done.
[2019-01-30 07:44:17786]{base_task_runner.py:95}信息-子任务:[2019-01-30 07:44:17786]{models.py:1342}信息-在2019-01-29 03:30:00执行
[2019-01-3007:44:17835]{base_task_runner.py:95}信息-子任务:[2019-01-3007:44:17835]{python_operator.py:81}信息-完成。返回值为:传输数据
[2019-01-3007:44:17835]{base_task_runner.py:95}信息-子任务:[2019-01-3007:44:17835]{python_operator.py:106}信息-以下分支传输数据
[2019-01-3007:44:17836]{base_task_runner.py:95}信息-子任务:[2019-01-3007:44:17835]{python_operator.py:107}信息-将其他直接下游任务标记为跳过
[2019-01-3007:44:17861]{base_task_runner.py:95}信息-子任务:[2019-01-3007:44:17861]{python_operator.py:119}信息-完成。

我已经尝试将
trigger\u rule=“all\u done”
添加到PythonBranchOperator中,但行为没有改变。

虽然它不能解决您的问题,但从逻辑上讲,
trigger\u rule=“all\u done”
不应该设置为您的
传输数据
/
跳过传输
任务,而不是
传输检查
任务吗?诚然,这是我一直不清楚的。我今晚可以进行修改,看看它是如何工作的。将触发器规则添加到
transport\u数据
skip\u transport
任务后,行为没有变化。