请有人确认我的想法。
我有一个业务流程,该流程将同一活动称为400次。我正在使用扇出/扇入概念。
await Task.WhenAll(collectionOfTasks);
如果这400项活动总共花了10分钟以上的时间,那么它似乎不会完成,并且不会再次执行/继续,除非再次调用业务流程方法。
这是对的吗?如果业务流程10分钟未执行任何操作,Azure功能是否会关闭?活动功能是否仍在运行并不重要?
答案 0 :(得分:2)
请注意,在消耗函数应用程序上执行每个单独的函数只能运行10分钟,然后再由Azure基础结构回收该应用程序。这对于业务流程有些微妙之处,因为它们可以有效地永远运行,因为每次await
一个活动功能时,执行都会停止,并且一旦活动结束,该执行就会恢复。只要您将业务流程功能设计为每次运行不超过10分钟,它就可以永远有效运行。
您可能遇到的问题是,执行400个活动函数中的一个(或多个)过程耗时超过10分钟。如果是这种情况,它可能正在回收应用程序,直到再次调用编排方法才重新启动。