所以我在气流中有一个非常不错的DAG,它基本上对二进制文件运行几个分析步骤(实现为气流插件)。 DAG由ftp传感器触发,该传感器仅检查ftp服务器上是否有新文件,然后启动整个工作流程。
因此,当前的工作流程是这样的:按照定义触发DAG->传感器等待ftp上的新文件->执行分析步骤->工作流程结束。
我想要的是这样的:DAG是触发器->传感器等待ftp上的新文件-> ftp上的每个文件都单独执行分析步骤->每个工作流程分别结束。
如何使ftp服务器上的每个文件执行分析工作流程,如果服务器上没有文件,则仅一个传感器应等待一个新文件? 我不想例如每秒启动DAG,因为那样我有很多传感器仅在等待新文件。
答案 0 :(得分:2)
使用2个DAG将传感步骤与分析步骤分开。
DAG 1:
传感器等待ftp上的新文件->新文件着陆后,使用TriggerDagRunOperator触发DAG 1本身->使用TriggerDagRunOperator触发DAG 2
DAG 2:
执行文件分析步骤