Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.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
Python 为每个文件运行气流DAG_Python_Airflow - Fatal编程技术网

Python 为每个文件运行气流DAG

Python 为每个文件运行气流DAG,python,airflow,Python,Airflow,所以我在airflow中有一个非常好的DAG,它基本上在二进制文件上运行几个分析步骤(实现为airflow插件)。DAG由ftp传感器触发,该传感器仅检查ftp服务器上是否有新文件,然后启动整个工作流 所以目前的工作流程是这样的:DAG按定义触发->传感器在ftp上等待新文件->执行分析步骤->结束工作流程 我想要的是这样的:DAG是触发器->传感器等待ftp上的新文件->ftp上的每个文件单独执行分析步骤->每个工作流单独结束 如何为ftp服务器上的每个文件执行分析工作流?如果服务器上没有文件

所以我在airflow中有一个非常好的DAG,它基本上在二进制文件上运行几个分析步骤(实现为airflow插件)。DAG由ftp传感器触发,该传感器仅检查ftp服务器上是否有新文件,然后启动整个工作流

所以目前的工作流程是这样的:DAG按定义触发->传感器在ftp上等待新文件->执行分析步骤->结束工作流程

我想要的是这样的:DAG是触发器->传感器等待ftp上的新文件->ftp上的每个文件单独执行分析步骤->每个工作流单独结束

如何为ftp服务器上的每个文件执行分析工作流?如果服务器上没有文件,则只需一个传感器等待一个新文件?
例如,我不想每隔一秒左右启动一个DAG,因为那时我有许多传感器正在等待一个新文件

使用2个DAG将传感步骤与分析步骤分开

DAG 1:

传感器在ftp上等待新文件->新文件到达后,使用TriggerDagRunOperator触发DAG 1本身->使用TriggerDagRunOperator触发DAG 2

DAG 2:

对文件执行分析步骤