【问题标题】:Azure Logic apps take hours/days to run Azure FunctionsAzure 逻辑应用需要数小时/数天才能运行 Azure Functions
【发布时间】:2019-06-19 03:25:34
【问题描述】:

背景

我有一组逻辑应用程序,每个应用程序调用一组并行运行的函数应用程序。

每个逻辑应用都被触发在夜间的某个时间启动,所有应用都错开一个小时。

Azure 函数使用async pattern 编写并调用外部 API。

问题

有时逻辑应用会运行良好并在正常时间段内完成执行,并且可以连续执行两到三天。

但有时他们会花费数小时或数天时间迫使我取消他们的跑步。

任何机构都可以阐明这可能正在发生吗?

注意事项

  1. 我正在使用持久功能扩展的最新 nuget 包
  2. 调试时功能总是及时完成
  3. 我注意到函数有时会卡在待处理状态。

【问题讨论】:

  • 首先,如果您查看应用洞察力,您的函数是否会抛出错误导致它们需要很长时间才能完成?其次,测试部署到新的逻辑应用和函数实例,因为这似乎是一个非常特殊的场景。
  • 你可以点击 Runs history ,检查你的逻辑流程是哪一步卡住了。
  • @MurrayFoxcroft 没有抛出异常。然而,我对正在调查的存储表的依赖调用失败了。
  • @MurrayFoxcroft 是的,它的功能应用卡住了,所有其他逻辑应用步骤都成功。
  • 嗨,Dan,我想仔细看看你的 Durable Functions 发生了什么。我打开了issue in our GitHub repo 来跟踪这个;你介意跳过去并在“调查信息”标题下提供信息,以便我们进行调查吗?谢谢!

标签: azure azure-functions azure-logic-apps azure-durable-functions azure-function-async


【解决方案1】:

您似乎至少有两个功能应用配置了相同的存储帐户和任务中心名称:

  • AzureConsumptionXXX
  • AzureComputeXXX

这会导致两个函数应用互相窃取消息。如果一个应用中的功能在另一个应用中不存在,那么编排很可能会陷入这样的待处理状态。

缓解这种情况的最简单方法是为每个函数应用指定一个唯一的任务中心名称。有关详细信息,请参阅任务中心文档:https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-task-hubs

【讨论】:

    猜你喜欢
    • 2020-05-11
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多