我刚刚第一次启动 Airflow 并试图弄清楚它是否允许运行带有过滤器的“管道”,其中过滤器可以是 shell 任务或微服务。
考虑以下场景:
- 考虑一个有注册用户的门户网站
- 此门户的用户能够启动工作流“W1”和“W2”。这也意味着工作流需要在用户之间隔离运行,并且需要状态持久性。
- 让我们假设工作流程 W1 是完全自动化的(我不会详细说明)。所以这是一项正常的任务,可以开始并在某个时候完成。
然而,工作流 W2 在工作流中的某些点需要用户交互。假设工作流 W2 包括三个步骤:
1) 预处理数据
2) 通过 REST API 公开数据,并允许(拥有工作流的用户)更改数据。这可能是一个循环,因此用户可能会多次更改数据,直到工作流继续到下一步。
3) 后处理数据
到目前为止,我有三个无法通过文档或示例解决的问题:
Q1:如何在 Airflow 中定义一个 DAG,以便每个用户单独启动此类工作流 w2?
Q2:如何在循环等待用户交互时“暂停并继续”执行?
Q3:如何持久化工作流,让它永远不会超时,可以随时继续?
欢迎使用小代码示例(我也是 Python 新手)!