【问题标题】:Child Logic Apps continue to run after parent Logic App completes/is cancelled?父逻辑应用完成/取消后,子逻辑应用是否继续运行?
【发布时间】:2019-07-10 21:49:58
【问题描述】:

我们遇到过我们发现的情况

1. If the parent Logic App successfully completes, or
2. If the parent Logic App is cancelled

我们观察子逻辑应用 继续运行直到孩子“正常”完成,即使父母 不再“等待”。

这对我们来说是一个非常令人惊讶的因素,因为我们不希望孩子们继续下去。

当父逻辑应用完成、失败或被取消时,是否有强制停止子逻辑应用的机制?

与逻辑应用子级不停止类似,我们也注意到当父级取消时,父级中的 webhook 和延迟都不会自动停止,有没有办法强制停止这些步骤?

【问题讨论】:

  • 如果您希望父逻辑应用等到子逻辑应用完成,您应该在子逻辑应用中返回 200(默认情况下逻辑应用将返回 202),因此它会等到孩子说完了。您还可以在子逻辑应用中处理故障并返回 4XX 或 5XX 状态码。对于取消,不确定您是否可以轻松完成
  • 嗨,Thomas,感谢您的评论,我们遇到了孩子做出积极回应的情况,但不适用于我们取消父母,迫使孩子停下来的情况。

标签: azure-logic-apps


【解决方案1】:

您可以将父工作流运行 ID 作为参数发送给子应用,并在子应用查询父逻辑应用的位置设置步骤。 https://docs.microsoft.com/en-us/rest/api/logic/workflowtriggerhistories/get 如果父应用程序已停止,您使用 terminate action 终止子应用程序

同样,您可以在所有子应用程序的第一步中将其运行时 ID 发送到 blob/临时空间,如果父级停止,它可以作为最后一步,它可以停止运行时 ID 中的所有子级在温度中,然后清除温度 https://docs.microsoft.com/en-us/rest/api/logic/workflowruns/cancel

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多