Ard*_*oli 2 triggers azure-data-factory azure-pipelines
我有一个Azure Data Factory Pipeline. 我的触发器每 5 分钟设置一次。有时我的流水线需要超过 5 分钟才能完成它的工作。在这种情况下,触发器再次运行并创建我的管道的另一个实例,并且同一管道的两个实例在我的 ETL 中产生问题。我如何确定我的管道一次只运行一个实例?
如您所见,我的管道有多个实例正在运行
我能想到的几个选项:
选项 1
为您的管道活动指定 5 分钟超时:
https://docs.microsoft.com/en-us/azure/data-factory/concepts-pipelines-activities https://docs.microsoft.com/en-us/azure/data-factory/concepts-pipelines-activities #活动政策
选项 2
1) 创建一个 1 行 1 列的 sql RunStatus 表:1 将是我们的“已完成”,0 - “正在运行”状态
2) 在管道的末尾添加一个存储过程活动,该活动会将位设置为 1。
3) 在您的管道开始时添加一个查找活动来读取该位。
4) 此查找的输出将用于 if 条件活动:
为了充分利用这个选项,您可以将表格变成日志,每次成功运行后都会在其中添加带有开始和结束时间的新行(在启动新运行之前,您可以检查上一次运行是否有时间结束)。拥有此日志可能会帮助您收集有关运行管道需要多少时间的数据,并且可能会添加更多资源或增加运行间隔。
选项 3
使用 SDK 监控管道运行(还没有尝试过,所以这只是为了指导您):https : //docs.microsoft.com/en-us/azure/data-factory/monitor-programmatically
希望您至少可以使用其中之一
小智 6
听起来您正在尝试或多或少地不断运行一个进程,这非常适合滚动窗口触发器。您可以创建一个依赖项,使触发器依赖于自身 - 因此在上一次运行完成之前它不会运行。
首先创建一个在滚动窗口上运行管道的触发器,然后创建滚动窗口触发器依赖项。该文章底部的部分讨论了“滚动窗口自相关属性”,它向您展示了成功设置后代码应该是什么样子。
| 归档时间: |
|
| 查看次数: |
3907 次 |
| 最近记录: |