【问题标题】:For_each concurrency and variable interference in Azure Logic AppAzure Logic App 中的 For_each 并发和变量干扰
【发布时间】:2018-01-31 14:45:47
【问题描述】:

我有一个逻辑应用程序,它使用 For_each 遍历电子邮件附件并将它们保存到 Azure 文件容器。

根据某些条件,我希望附件以不同的名称或不同的路径存储,但 for_each 的默认并发是相关的;我在顶层设置了路径和文件名变量,并在满足条件时将它们设置在循环中。

有没有办法确保这些变量在不将并发设置为 1 的情况下保持我在该迭代中设置的值?

它似乎在默认并发下正常工作,但我会将并发设置为 1,直到我确定这些迭代是否会在设置变量方面相互干扰。

【问题讨论】:

    标签: azure-logic-apps


    【解决方案1】:

    如果您在 for-each 循环中更改变量值(并且可能在同一个循环中使用它),您应该将并发设置为 1 以确保循环以顺序方式运行以避免出现竞争情况。

    【讨论】:

    • 好的,谢谢。这在任何地方都有记录吗?有什么计划来解决这个缺点吗?
    • 您认为缺点是什么?该行为是经过设计的。
    • 缺点是只能声明“全局”变量,如果这些变量在每次迭代中都被更改,则使得 For_each 的并发特性无用。
    【解决方案2】:

    由于变量只能在顶层声明,因此在没有将并发设置为 1 的情况下,这将不会在某些场景中使用。假设我们有具有此架构的 JSON:

    `[
       {
        [JSON Object]
       }
     ]` 
    

    并且需要迭代每个内部以获得价值并增加计数器,并且基于计数器我们有一些动作。在这种情况下,我们需要局部变量而不是全局变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      相关资源
      最近更新 更多