2016-06-30 1 views
3

Я новичок в Azure web-job. Когда я работаю с веб-заданиями, у меня возник вопрос о том, имеет ли веб-работа собственное распределение памяти, например, процесс?IS Azure Webjobs имеют собственное выделение памяти?

Мы создаем веб-страницы под веб-сайтом (веб-приложение), поэтому для веб-сайта создается отдельная память. Затем мы создаем несколько веб-сайтов под этим сайтом в лазурной.

, так что если статический класс получает instanciated под azure веб-сайт instance.then веб-заданий, который использует этот статический класс одновременно, приведет к потере данных? как этот

например:

website --> static class1 memory instance get created.  
In webjob1 --> uses above created class1.  
In webjob2 --> uses above one class1. 

Webjobs использует только ссылку (неглубоко копия)

или

поскольку webjob работает как процесс, он будет создавать экземпляр статического класса на своей собственной памяти?

например:

In webjob1 memory --> static class1 memory instance get created inside webjob1's allocated memory.  
In webjob2 memory --> static class1 memory instance get created inside webjob1's allocated memory.etc... 
both have its own static class like(deep copy) 

Может кто-нибудь объяснить, как это работает? заранее спасибо

ответ

5

Каждый WebJob работает в своем собственном процессе, который отличается от процесса WebApp (w3wp). Поэтому у каждого из них будет своя копия статических переменных.

+0

Большое вам спасибо. Если у каждого webjobs есть свой процесс и память, тогда зачем нам создавать его на веб-сайте ?. Azure не позволит нам создавать webjobs в виртуальной памяти. Если мы хотим создавать веб-задания, нам нужно веб-приложение. – Skull

+1

Вы должны просмотреть веб-приложение в качестве контейнера для WebJobs. Вам не нужно запускать фактический веб-сайт там, если вы этого не хотите. –