2011-03-08 16 views

Respuesta

7

Menos que Ruby on Rails maneja las solicitudes concurrentes ya que es el servidor que ejecuta Ruby on Rails el que maneja las solicitudes simultáneas. Cuando digo un servidor que ejecuta Ruby on Rails me refiero a Phusion Passenger, Mongrel o WEBrick en combinación con Apache o Nginx, por ejemplo. En la mayoría de los casos, la concurrencia se logra al ejecutar múltiples aplicaciones de Ruby on Rails que cada manejador solicita por separado. Si bien esto puede requerir más memoria que un enfoque verdaderamente enhebrado, no es necesario que los desarrolladores de Ruby on Rails escriban código seguro para subprocesos.

+0

Gracias. ¿Hay algún tutorial sobre el lanzamiento de múltiples aplicaciones de Rails? – Shuo

+0

Eso depende del servidor que desee utilizar y del sistema operativo que esté utilizando. Yo recomendaría leer la documentación de Phusion Passenger ya que también incluye documentación sobre cómo hacer que los pasajeros corran con Apache y Nginx. –

0

Necesita ejecutar un servidor de subprocesos como Puma en un Ruby con subprocesos como JRuby para eso. De lo contrario, es solo el servidor que crea procesos en lugar de hilos, como Pushion Passenger. Por supuesto, necesita escribir un código seguro para eso, que puede ser muy difícil de desarrollar y mantener. Por este motivo, la mayoría de las personas se atiene a soluciones de un solo subproceso, aunque Rails 4 tiene múltiples subprocesos por defecto y, por lo tanto, es posible que veamos un cambio de tendencia en el futuro cercano.