python - 如果在运行时多次运行同一个 dag 会发生什么?
问题描述
如果同时触发相同的 dag(或运行时间重叠)会发生什么?
询问是因为最近手动触发了一个 dag,当它的实际计划运行时间过去时,它最终仍在运行,此时,从 Web 服务器 UI 的角度来看,它又从头开始运行(我无法再跟踪以前的例子)。这只是“运行实例”超载 dag_id 的情况,还是作业真的重新启动(即先前的进程被杀死)?
解决方案
据我了解,这取决于触发方式以及 DAG 是否有时间表。如果它基于 DAG 中定义的计划,则说每天运行的任务不完整/仍在工作,并且您单击重新运行,则此任务实例将重新运行。即今天的那个。同样,如果频率是任何其他时间单位。
- 如果您想重新运行其他实例,则需要按照@lars-haughseth 在另一个问题中的描述从以前的作业中删除它们。气流重新运行 dag-from-beginning-with-new-schedule
- 如果您触发 DAG 运行,那么它将获得触发器执行时间戳,并且该运行将与计划运行分开显示。如此处的文档中所述。外部触发器文档
请注意,也可以在运行气流 trigger_dag 命令时通过 CLI 手动创建 DAG 运行,您可以在其中定义特定的 run_id。在调度程序外部创建的 DAG 运行与触发器的时间戳相关联,并将与调度的 DAG 运行一起显示在 UI 中。
在你的例子中,它听起来像后者。希望有帮助。
推荐阅读
- deep-learning - 大数据集对训练模型大小的影响?
- c# - 从 Blazor 应用程序运行时,SQL 连接类不会连接
- c# - 使用 SQL Server 中的 where 子句在所有行中更新相同的结果
- java - Aframe 中的第二个 uv 用于环境光遮蔽
- python - 如何将json类型数据转换为pandas数据框
- mysql - 当 usedIf 在数据库中时,sequelize findOne 找不到 userId
- c# - 在winforms c#中从网站中提取数据
- javascript - 发送 (JavaScript / Ajax) 和接收 (PHP) 文件没有 utf8 问题
- java - 如何将音频文件保存在 Android Studio 的存储中?
- c# - 从 JSON 文件中对元素进行排序并将它们保存在字典中