Azure Logic应用程序需要数小时/数天才能运行Azure函数

时间:2019-01-25 09:55:05

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

背景

我有一组逻辑应用程序,每个逻辑应用程序都调用一组并行运行的功能应用程序。

每个逻辑应用程序被触发在夜间的某个特定时间启动,所有时间间隔为一个小时。

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

问题

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

但是有时他们会花几个小时或几天才能迫使我取消跑步。

enter image description here

任何人都可以了解这是怎么回事吗?

注释

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

1 个答案:

答案 0 :(得分:2)

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

  • AzureConsumptionXXX
  • AzureComputeXXX

这会使两个功能应用程序相互窃取消息。如果在一个应用程序的功能没有在其他应用程序存在,那么它很可能对业务流程处于挂起状态这样会被卡住。

减轻这种情况的最简单方法是为每个功能应用赋予唯一的任务中心名称。有关更多信息,请参见任务中心文档:https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-task-hubs