0

背景

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

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

Azure 函数使用异步模式编写并调用外部 API。

问题

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

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

在此处输入图像描述

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

笔记

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

1 回答 1

2

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

  • AzureConsumptionXXX
  • AzureComputeXXX

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

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

于 2019-02-01T17:53:04.393 回答