Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure持久功能:高处理时间使功能超时_C#_Azure_Azure Functions_Azure Durable Functions - Fatal编程技术网

C# Azure持久功能:高处理时间使功能超时

C# Azure持久功能:高处理时间使功能超时,c#,azure,azure-functions,azure-durable-functions,C#,Azure,Azure Functions,Azure Durable Functions,我创建了一个azure持久函数,它调用了大约8个活动函数。这些活动函数创建大约100个线程,用于启动http请求。我收到的数据必须进行转换。这个过程需要一些计算能力。例如:所有功能在本地需要大约3分钟,直到完成 现在,我想在azure中发布我的azure功能,包括消费计划及其优点。我现在的问题是,该函数需要10分钟以上的时间,这超过了最大执行时间 我不想使用应用程序服务。我正在寻找一种通过缩放控制器或某些行为来增加核心数量的方法,这会使缩放控制器提高性能 如果可能的话,我不想改变我的代码架构。我

我创建了一个azure持久函数,它调用了大约8个活动函数。这些活动函数创建大约100个线程,用于启动http请求。我收到的数据必须进行转换。这个过程需要一些计算能力。例如:所有功能在本地需要大约3分钟,直到完成

现在,我想在azure中发布我的azure功能,包括消费计划及其优点。我现在的问题是,该函数需要10分钟以上的时间,这超过了最大执行时间

我不想使用应用程序服务。我正在寻找一种通过缩放控制器或某些行为来增加核心数量的方法,这会使缩放控制器提高性能


如果可能的话,我不想改变我的代码架构。我考虑将持久函数拆分成更小的部分,并手动使用http请求启动每个函数。但是,由于函数之间相互作用,这似乎是对代码的一个非常大的更改,而不知道它是否会使缩放控制器使用更多实例。

在消费计划中,您将无法使用。也就是说,您至少可以控制在单个实例上执行多少活动。如果设置为类似于1的值,它将确保即使尚未扩展,一个实例上一次只处理一个活动,因此它不必与太多其他并发实例共享计算


总体扩展将由活动队列的长度驱动。因此,尽可能多地开展一些较小的活动,而不是只开展几个大型活动,这对你来说是最有利的。但是,使用上面链接的一些旋钮,您至少应该能够将更多的CPU用于正在执行的活动。

当您谈论“功能需要10分钟以上”时,您在谈论哪个功能?如果orchestrator函数的持续时间超过10分钟就可以了,因为状态被持久化到存储中。只有当一个活动函数花费的时间超过10分钟时,这才是一个问题。请尝试使活动函数尽可能小(正如@Marc提到的,它们会受到10分钟超时的影响),考虑每个活动函数有一个http请求。您仍然可以从orchestrator功能并行启动活动,然后等待它们完成,然后进行最终处理。恐怕解决方案没有帮助,但您的评论让我了解了具有消费计划的Azure功能的用途。我从使用Azure函数切换到使用docker容器,由Azure逻辑应用程序计时。我可以用4个vCore很好地扩展这个容器,现在它完全做到了我想要的,可靠而且非常便宜,因为它总是动态创建的。这是我的最终解决方案,谢谢!