Понимание того, как работают WebJobs - PullRequest
0 голосов
/ 12 июня 2018

Я изо всех сил пытаюсь ответить на этот вопрос для себя, так что любой может ответить на него для меня.Как именно запустить веб-задания?Под этим я подразумеваю, управляет ли инфраструктура Azure доступом к WebJob и выполняются ли несколько экземпляров в отдельных процессах?

У меня сложилось впечатление, что по умолчанию я получаю 12 или 16 параллельных экземпляров.Это правильно?Таким образом, если три сообщения помещены в очередь, по которой запускается моя веб-работа, все они будут выполняться параллельно.

1 Ответ

0 голосов
/ 13 июня 2018

AFAIK, когда вы масштабируете несколько экземпляров, веб-задания будут выполняться на экземплярах параллельно в отдельных процессах.Но есть предпосылки для этого:

  1. Веб-работа должна быть непрерывной , а не вручную / по расписанию.
  2. Чтобы это произошло правильно, вам нужно запуститьв стандартном режиме и с включенной настройкой Always On .

Примечание : если вы используете TimerTrigger в своем веб-задании, оно не будет масштабироваться.См. Эту статью .

За кулисами TimerTrigger использует функцию Singleton SDK WebJobs, чтобы гарантировать, что в любой момент времени работает только один экземпляр вашей запущенной функции .Когда запускается JobHost, для каждой из ваших функций TimerTrigger берется аренда BLOB-объектов (Singleton Lock).Эта блокирующая блокировка гарантирует, что в любое время будет работать только один экземпляр вашей запланированной функции.

Для получения более подробной информации о проблеме, вот две аналогичные публикации, к которым вы можете обратиться, 1 и 2 .

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