为什么调度和执行活动功能之间会有这么长的延迟?

时间:2020-09-04 15:21:26

标签: azure-durable-functions

我有一个活动功能,它将:

  • 通过azure blob存储读取管道中其他地方的过程中的一堆结果
  • 使用fan-out, fan-in pattern
  • 对每个结果进行一些处理
  • 将原始结果与新处理的数据合并在一起,然后重新上传到blob存储

当我获得大量结果(〜10,000)时-我在完成处理过程和实际触发上传活动之间遇到了很大的延迟。

我看到处理大约需要3-4分钟,然后安排了我的“ PersistResults”活动-然后10分钟后,“ PersistResults”活动实际上开始运行,大约需要20秒钟才能运行。

我的猜测是,“ Persist”活动功能上的大量有效负载正在大大降低它的速度-尽管我对此限制一无所知,并且文档当然暗示了我所做的任何实际工作(例如,存储结果)应该在活动中进行以保持协调器确定性。

实际上,将结果上传到存储似乎非常快,因为当我的活动运行时,只需要20秒。

最终的有效负载(所有合并的结果)大约是50MB的未压缩-我注意到在持久功能存储帐户中,它使用压缩版本进行活动输入。

  • 使用这样的持久功能时,是否会出现这种严重的延迟?
  • 我有可能做过什么导致这种延迟?
  • 有什么我可以防止的吗?

0 个答案:

没有答案