Подход, который вы описываете, является лучшим подходом для ограничения максимального параллелизма во всем мире. Только будьте осторожны, что WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
не всегда надежно, в настоящее время написания. Позже в этом году команда планирует сделать этот параметр полностью надежным.
Это может не относиться к вашему случаю, но в интересах других читателей, которые находят этот вопрос, я добавил еще одну вещь для рассмотрения,Если у вас есть одна оркестровка, одна простая техника C #, которую вы можете использовать для ограничения максимального параллелизма, заключается в том, чтобы сделать что-то вроде этого:
static async Task FanOutFanInAsync(
string functionName,
object[] workItems,
int maxParallelism)
{
var inFlight = new HashSet<Task>();
foreach (var item in workItems)
{
if (inFlight.Count > maxParallelism)
{
Task finished = await Task.WhenAny(inFlight);
inFlight.Remove(finished);
}
inFlight.Add(ctx.CallActivityAsync(functionName, item));
}
await Task.WhenAll(inFlight);
}
Это позволит вам ограничить количество функций деятельности, которые вы разветвляете наодин раз для одного экземпляра оркестровки.