sql >> Base de Datos >  >> NoSQL >> Redis

¿Cómo creo un trabajador de Resque automáticamente en el arranque?

No uso la gema de dios porque (1) he visto un proyecto que fue muy afectado por la complejidad de la configuración que introdujo, y (2) personalmente me siento muy cómodo con las herramientas estándar de Linux (Ubuntu) que manejan este tipo de cosas

Para iniciar los trabajadores de Resque en el arranque

Tengo este código en mi /etc/rc.local expediente. Tengo una implementación usuario en el sistema:

# Start Resque
su -l deploy -c "/home/deploy/start-resque-workers"
su -l deploy -c "/home/deploy/start-resque-webui"

Luego, en esos scripts configuro el entorno ruby ​​y ejecuto la tarea de rake:

# Load RVM into a shell session *as a function*
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
  # First try to load from a user install
  source "$HOME/.rvm/scripts/rvm"
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
  # Then try to load from a root install
  source "/usr/local/rvm/scripts/rvm"
else
  printf "ERROR: An RVM installation was not found.\n"
fi

# Use rvm to switch to the default ruby. 
rvm use default

# Now launch the app
cd /home/deploy/app-name-here/current
nohup rake QUEUE=* RAILS_ENV=production environment resque:work &

He estado usando este tipo de configuración durante años, y es sólido. Los servidores no fallan. Todavía no necesito la sobrecarga de instalar otro sistema (como la gema de dios) para vigilar estos otros servidores.

Además, uso una gema capistrano para manejar el reinicio de los trabajadores en la implementación.