Intento decirlas con otras palabras.
En un servidor puede tener muchos sitios asp.net que se ejecutan juntos. Cada sitio es un dominio de aplicación .
Debe asignar a cada uno de ellos un grupo de aplicaciones . Muchos dominios de aplicaciones (sitios) pueden tener el mismo grupo de aplicaciones y, debido a que tienen el mismo grupo de aplicaciones, se ejecutan bajo los mismos procesos y bajo la misma cuenta, y tienen la misma configuración del grupo. Si este grupo se reinicia, todos los sitios bajo ese grupo se reinician.
Ahora cada grupo puede tener uno o más procesos de trabajo . Cada proceso de trabajo es un programa diferente que ejecuta su sitio, tiene sus propias variables estáticas, inician llamadas de parada diferentes, etc. Los diferentes procesos de trabajo no se comunican entre sí y la única forma de intercambiar datos es desde archivos comunes o una base de datos común. Si tiene más de un proceso de trabajo y uno de ellos hace cálculos de mucho tiempo, el otro puede encargarse de manejar las llamadas de Internet y mostrar el contenido.
Cuando asigna muchos procesos de trabajo a un solo grupo, crea el jardín web llamado y su sitio se ejecuta desde más de una computadora si una computadora es una máquina de procesamiento.
Cada proceso de trabajo puede tener muchos hilos.
Cómo te afecta el proceso más trabajador:
cuando tienes un proceso trabajador, todo es más simple, entre tu aplicación todas las variables estáticas son iguales y usas el lock
para sincronizarlas.
Cuando asigna más de un proceso de trabajo, sigue utilizando lock
para variables estáticas, las variables estáticas no son diferentes entre las muchas ejecuciones de su sitio y si tiene algún recurso común (por ejemplo, la creación de una miniatura en el disco) entonces necesitas sincronizar tu proceso de trabajador con Mutex
.
Una nota más. Parece que cuando haces más procesos de trabajo, es posible que tengas cargas de página asincrónicas más fluidas. Hay un pequeño problema con el controlador de sesión de asp.net que es bloquear todo el proceso para la carga de una página, eso es bueno y no bueno, depende de si lo conoce y lo maneja, o lo cambia.
Así que hablemos de un solo sitio con muchos procesos de trabajo. Aquí se enfrenta al problema con el que necesita sincronizar su cambio de recurso común Mutex
. Pero las páginas / manejadores que usan la sesión no son asincrónicas porque la sesión las bloquea. Esto es bueno para empezar porque evita hacer usted mismo esta sincronización de muchos puntos.
Algunas preguntas sobre este tema:
Aplicación web bloqueada mientras se procesa otra aplicación web al compartir la misma sesión Las
llamadas jQuery Ajax al servicio web parecen ser sincrónicas
ASP.NET Server no procesa las páginas de forma asincrónica
Reemplazando la sesión de ASP.Net por completo
Ahora bien, este bloqueo de sesión no afecta a diferentes sitios.
Entre los diferentes sitios, el proceso más trabajado puede ayudar a que un sitio no bloquee al otro con un proceso de larga duración.
Además, entre los diferentes sitios, más grupos también pueden ayudar, porque cada grupo tiene al menos un proceso trabajado, pero recuerde y vea usted mismo usando el explorador de procesos, cada proceso de trabajo requiere más memoria de su computadora y un gran servidor con memoria 16G y un servidor SQL no puede tener demasiados procesos de trabajo diferentes; por ejemplo, en un servidor con 100 sitios compartidos, no puede tener 100 grupos diferentes.