Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Como crio um resque worker automaticamente na inicialização?


Eu não uso a gema de deus porque (1) eu vi um projeto que foi muito prejudicado pela complexidade da configuração que ele introduziu, e (2) eu estou pessoalmente muito confortável com as ferramentas padrão do Linux (Ubuntu) que lidam com esse tipo de coisa.

Para iniciar os trabalhadores do Resque na inicialização

Eu tenho esse código no meu /etc/rc.local Arquivo. Tenho uma implantação usuário no sistema:
# Start Resque
su -l deploy -c "/home/deploy/start-resque-workers"
su -l deploy -c "/home/deploy/start-resque-webui"

Então, nesses scripts eu configurei o ambiente ruby ​​e executo a tarefa 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 &

Eu tenho usado esse tipo de configuração há anos, e é sólido. Os servidores não travam. Eu ainda não preciso da sobrecarga de instalar outro sistema (como a gema dos deuses) para vigiar esses outros servidores.

Além disso, eu uso uma gem capistrano para lidar com a reinicialização dos trabalhadores na implantação.