我想知道Azure函数中的并行原理。如果我的batchSize为32,阈值为16。如果队列变大,规模控制器就会产生一个新的函数来承受压力。我明白这一点。我不明白的是:单个实例是否在批处理上工作?也就是说,我是否只有一个运行pr批处理的函数,或者运行时是否扩展并使用该函数运行多个线程?
我是否可以冒险让两个实例运行,每个实例都有32条消息,同时有32个线程运行32个函数pr一次?
我有个叫webapi的功能。这意味着api将同时收到64次调用,而我不想这样做。
我想要的是两个功能,工作在32条消息,每个制作一个呼叫公关消息公关功能。
我希望你们能理解。
发布于 2019-07-11 17:08:45
是。这确实是缩放的工作方式。在文档中也有更多的细节对此做了解释。
根据这一点,您的函数(一个实例)一次最多可以运行48条消息(32条来自新批处理+ 16条来自现有批处理),并且可能根据队列长度而扩展到多个实例。
为了实现你提到的场景,你必须
batchSize
设置为1
以避免每个实例的并行处理WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
应用程序设置设置为2
,以限制扩展到最多2个实例请注意,所有32条消息都不会由任何一个实例加载,但是仍然会在队列中工作。
https://stackoverflow.com/questions/56841544
复制相似问题