如何在 Azure Data Factory V2 中设置看似循环但实际上不是循环的依赖关系

How to setup seemly circular but not actually circular dependencies in Azure Data Factory V2

场景如下:

管道 A 由翻滚触发 Window 触发器 A - 每小时运行一次。

管道 B 由 Tumbling 触发Windows触发器 B - 每周运行。

我希望 A 仅在 :

之后 运行

一个。 A 的最后 运行 成功。 (自我依赖 - 可行)。

b。 B 的最后 运行 成功。 (这也是可行的,但由于下面几行中的 b 点,可能会陷入循环依赖)

我希望 B 仅在 :

之后 运行

一个。 B 的最后 运行 成功。 (自我依赖 - 可行)

b。 A 的最后 运行 成功。 (这在我们发布时和稍后生成 ARM 模板时会出现循环依赖问题)

此处 A 的频率为 1 小时,B 的频率为 1 周。

考虑 B 下一次执行时间为 2 月 9 日 12:00 2 月 2 日至 2 月 9 日 window 上午

此外,A 将在 2 月 9 日执行 12:00 上午 window 2 月 8 日 11:00 下午 - 12:00 下午。

在这种情况下,两个 运行 将在 2 月 9 日 12:00 上午发生碰撞。我们可以设置依赖关系使其不冲突吗?

我提供以下思路供大家参考:

1.Firstly,将流水线放入Execute Pipeline Activity,因为您可能需要在执行 A 和 B 流水线之前和之后执行一些步骤。

2.Secondly,由于管道必须在某些条件下执行,我认为你可以保留 A 和 B 管道执行的结果 anyway.For 例如,执行管道后,使用 Azure Function Activity or Web Activity 将管道的结果发送到一些住宅中。目的是记录A和B的最新执行结果。

3.Finally,在A、B流水线执行之前,可以用一个Until Activity判断流水线是否可以执行。