当前位置: 首页 > 知识库问答 >
问题:

Azure函数-限制并行执行

袁俊弼
2023-03-14

可以限制并行运行的函数的最大数量吗?

我看了留档,发现了这个:

当多个触发事件发生的速度快于单线程函数运行时处理它们的速度时,运行时可能会并行多次调用该函数。

如果函数应用正在使用消耗托管计划,函数应用可以自动横向扩展。函数应用的每个实例(无论应用是在消耗托管计划还是常规应用服务托管计划上运行)都可能使用多个线程并行处理并发函数调用。

每个函数应用程序实例中并发函数调用的最大数量因使用的触发器类型以及函数应用程序中其他函数使用的资源而异。

https://docs.microsoft.com/en-gb/azure/azure-functions/functions-reference#parallel-execution

我在应用程序服务计划中使用了一个带有事件中心输入绑定的函数,在我的函数应用程序中只有一个函数。如果我不能限制它,有人知道这种设置的并发函数调用的最大数量是多少吗?

共有3个答案

牛凌
2023-03-14

Microsoft添加了一个新的设置,可用于限制函数执行的并发性。设置为WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT,可用于限制并行执行的函数实例的数量。然而,据微软称,它还没有完全实现。

https://github.com/Azure/azure-functions-host/wiki/Configuration-Settings

卓星波
2023-03-14

仅供参考,我是在这里寻找节流的。您可以在函数上使用[Singleton]属性,确保一次只能执行一次。也许这不是你想要的,也是一种非常严格的节流方式,但它仍然是一种选择。

https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-how-to#singleton-属性

白彦
2023-03-14

没有办法为事件集线器触发的函数指定最大并发性,但可以按此处所述控制批大小和获取选项。

并发调用的最大数量也可能因工作负载和资源利用率而异。

如果需要并发限制,这是(目前)你需要处理的事情,下面的帖子讨论了一些你可能会发现有用的模式:

正在限制Azure Function App中的Azure存储队列处理

限制Azure函数队列上并发作业的数量

 类似资料:
  • 问题内容: 您好,可以仅将时间限制设置为命令或功能,例如: 我只想将时间限制设置为function1。 有退出set_time_limit,但我认为这将整个脚本的时间限制。有人有想法吗? 问题答案: set_time_limit()确实在全局运行,但是可以在本地重置。 设置允许脚本运行的秒数。如果达到此目的,脚本将返回致命错误。默认限制为30秒,如果存在,则为php.ini中定义的max_exec

  • 我们使用spring boot actuator来获取应用程序的健康状态,我的理解是健康检查请求将由用于服务实际服务请求的线程池中的线程处理。 是否有一种方法来限制对健康endpoint的请求数量,以防止DDOS类型的饥饿。

  • 若要让儿童使用PS Vita,监护人可依个人需要限制可播放的内容或可使用的功能。 此外,PlayStation®Network也准备了在主账号看管下,一定年龄以下的用户可使用的子账号。 详情请参阅「创建PlayStation®Network账号」。 可执行的操作 内容 如何设定限制 限制启动设有年龄限制的应用程序或视频影像等内容 除了[关]以外另有11个等级可设定。根据PS Vita内设定的等级,

  • 我想在java中执行一个函数,但同时我想在操作开始和结束时向用户显示一个,问题是如果我不推送第一个的“接受”buyton,我的函数就不会启动,我希望它是自动的,我该怎么做?这是我的代码,我的函数使用JRI接口。

  • 问题内容: 有什么方法可以将函数作为json字符串(通过JSON.stringify进行转换)传递,发送给另一个函数,解析json,然后执行json中的函数?我正在使用jquery和javascript。 问题答案: 这是一个有效的例子 基本上,您必须小心这种事情。如果您采用现存的javascript函数,将其转换为字符串,然后进行评估,则可能会遇到函数重新声明问题。如果您只是从服务器获取函数字符