耐用的功能-活动似乎停止了

时间:2019-01-17 14:17:43

标签: c# azure-functions azure-functions-runtime azure-durable-functions

请有人确认我的想法。

我有一个业务流程,该流程将同一活动称为400次。我正在使用扇出/扇入概念。

await Task.WhenAll(collectionOfTasks);

如果这400项活动总共花了10分钟以上的时间,那么它似乎不会完成,并且不会再次执行/继续,除非再次调用业务流程方法。

这是对的吗?如果业务流程10分钟未执行任何操作,Azure功能是否会关闭?活动功能是否仍在运行并不重要?

1 个答案:

答案 0 :(得分:2)

请注意,在消耗函数应用程序上执行每个单独的函数只能运行10分钟,然后再由Azure基础结构回收该应用程序。这对于业务流程有些微妙之处,因为它们可以有效地永远运行,因为每次await一个活动功能时,执行都会停止,并且一旦活动结束,该执行就会恢复。只要您将业务流程功能设计为每次运行不超过10分钟,它就可以永远有效运行。

您可能遇到的问题是,执行400个活动函数中的一个(或多个)过程耗时超过10分钟。如果是这种情况,它可能正在回收应用程序,直到再次调用编排方法才重新启动。