Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Airflow 如果分支不聚合,dag中不能运行分支任务吗?_Airflow - Fatal编程技术网

Airflow 如果分支不聚合,dag中不能运行分支任务吗?

Airflow 如果分支不聚合,dag中不能运行分支任务吗?,airflow,Airflow,气流图任务分支从未运行,抱怨“任务实例在数据库中不存在”,但可以在图中看到 我有一个气流图,有一个条件分支,定义如下 class BranchFlags(枚举): yes=“yes” 否=“否” ... 对于表格列表中的表格,类型列表(dict) task_1=bash运算符( task\u id='task\u 1\u%s'%table[“conf1”], bash_command='bash script1.sh%s'%table[“conf1”], dag=dag) 如果表[“branch

气流图任务分支从未运行,抱怨“任务实例在数据库中不存在”,但可以在图中看到

我有一个气流图,有一个条件分支,定义如下

class BranchFlags(枚举):
yes=“yes”
否=“否”
...
对于表格列表中的表格,类型列表(dict)
task_1=bash运算符(
task\u id='task\u 1\u%s'%table[“conf1”],
bash_command='bash script1.sh%s'%table[“conf1”],
dag=dag)
如果表[“branch_flag”]==BranchFlags.yes:
合并运算符(
task\u id='task\u 3\u%s'%table[“conf2”],
bash_command='python%s/consolidate_parquet.py%s'%table[“conf2”],
dag=dag)
task_3=bash运算符(
task_id='task_3'%s'%table[“conf3”],
bash_command='bash script3.sh%s'%table[“conf3”],
dag=dag)
任务1>>任务3
如果表[“branch_flag”]==BranchFlags.yes:
任务1>>任务2
下面是气流UI中的图表,来自我的实际代码:

请注意,即使图中较长的部分运行良好,但单独的分支也不会针对本应进行分支的序列运行。查看任务的日志时,我看到

***数据库中不存在任务实例

这对我来说很奇怪,因为表面上调度器DB看到了任务,因为它确实出现在web UI图中。不确定这里发生了什么,并将其他更改添加到dag
.py
文件中,这些更改确实会显示在图形中,并在运行图形时由调度程序执行。试图查看任务实例详细信息会引发错误

任务[dagname.Task_3_qwerty]目前似乎不存在

运行
气流重置db
(正如我在其他帖子中看到的那样)对这个问题没有任何帮助

请注意,其目的是短分支与长分支同时运行(而不是作为非此即彼的选择)


有人知道为什么会发生这种情况,或者有一些调试技巧吗?

对于气流来说是个新概念,但是想知道较短的分支是否需要连接回下游较长的路径。作为调试说明留在此处,以尝试并报告。不完全确定原因,但似乎与受影响的分支任务使用动态值命名有关,将继续调试。执行两项操作似乎有效:1)不在创建dag之前动态计算的值后命名任务\u id(非常奇怪)2)将短支腿连接回下游较长的支腿。只有在完成这两项操作之后,“prep_file…”和“consolidate”分支才会同时运行(参考文章中的图片)。在写完整答案之前,仍在试图找出原因。如果有人知道会发生什么,请告诉我。