Функция Azure batchSize - PullRequest
       11

Функция Azure batchSize

0 голосов
/ 01 июля 2019

Я задаюсь вопросом о параллельном принципе в функции Azure. Если у меня batchSize 32 и порог 16. Если очередь увеличивается до большого, контроллер Scale запускает новую функцию, чтобы противостоять давлению. Я понимаю это немного. Что я не понимаю, так это: работает ли один экземпляр в пакете? То есть у меня есть только одна функция, запускающая pr batch, или среда выполнения масштабируется и запускает несколько потоков с помощью функции?

Могу ли я рискнуть запустить два экземпляра, каждый с 32 сообщениями, и одновременно 32 потока, выполняющих 32 функции pr один раз?

Imaging У меня есть функция, вызывающая webapi. Это означает, что API получит 64 звонка одновременно, а я не хочу.

Мне нужны 2 функции, работающие с 32 сообщениями, каждое из которых выполняет 1 функцию вызова сообщения pr.

Надеюсь, вы, ребята, понимаете.

1 Ответ

0 голосов
/ 11 июля 2019

Да. Именно так работает масштабирование. То же самое объясняется чуть более подробно в документах .

В соответствии с этим ваша функция (один экземпляр) может одновременно запускать до 48 сообщений (32 из нового пакета + 16 из существующего пакета) и потенциально может масштабироваться до нескольких экземпляров в зависимости от длины очереди.

Чтобы реализовать сценарий, который вы упомянули, вам нужно

  1. Установите batchSize на 1, чтобы избежать параллельной обработки для экземпляра
  2. Установите для приложения WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT значение 2, чтобы ограничить масштабирование максимум 2 экземплярами

Обратите внимание, что все 32 сообщения не будут загружены ни одним из экземпляров, но, тем не менее, будут работать через очередь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...