2012-04-26 14 views

Respuesta

29

depende del contexto.

Un trabajador suele ser un proceso que se ejecuta fuera del ciclo de solicitud de la aplicación. Las bibliotecas de Ruby como resque y delayed_job se usan normalmente para administrar colas de trabajo.

Por otro lado, si hablamos de servidores web, la palabra "trabajador" a veces se usa indistintamente con hilos o procesos (es decir: nginx o apache "workers").

+0

en servidores web, ¿son hilos o procesos independientes de los trabajadores? – Kamilski81

+0

@ Kamilski81 en servidores web y utilizando las soluciones que se describen aquí, estos serían procesos separados. Con el trabajo retrasado, por ejemplo, puede ejecutar muchos procesos de trabajo diferentes que pueden mostrar la siguiente tarea de mayor prioridad de la base de datos. Debido a esta arquitectura, muchas personas ejecutan un proceso de monitor adicional usando algo como Dios o BluePill. Consulte aquí para obtener más información: https://www.ruby-toolbox.com/categories/server_monitoring – salernost

3

Un servidor que ejecuta su aplicación de rieles utiliza trabajadores para hacer todas las cosas que una aplicación necesita. Envía correos electrónicos, ejecuta solicitudes, realiza cálculos, etc. La cantidad de trabajadores que necesita depende de la cantidad de tráfico y los cálculos que su aplicación web necesita hacer.

7

A menudo, en el 'mundo de los rieles' un trabajador se refiere a un sistema de tipo de cola de prioridad que tiene procesos separados que salen de tareas para ejecutar fuera del ciclo de la aplicación. Uno de los sistemas más populares es DelayedJobs. Utiliza una migración de base de datos para agregar una tabla para contener las tareas que debe ejecutar un proceso de trabajo. A continuación, puede configurar cualquier cantidad de procesos de trabajo que verifiquen la tabla de espera DelayedJobs y ejecuten la tarea serializada. Con DelayedJobs no solo tiene la capacidad de establecer la prioridad de las diferentes tareas, sino también un marco de tiempo para ejecutar la tarea, por ejemplo. envíe un correo electrónico particular dentro de 1 hora.

Espero que esto ayude, /Salernost