Redis
 sql >> Database >  >> NoSQL >> Redis

Come faccio a creare automaticamente un lavoratore resque all'avvio?

Non uso il god gem perché (1) ho visto un progetto che è stato molto colpito dalla complessità della configurazione che ha introdotto e (2) personalmente sono davvero a mio agio con gli strumenti standard di Linux (Ubuntu) che gestiscono questo genere di cose.

Per avviare i lavoratori Resque all'avvio

Ho questo codice nel mio /etc/rc.local file. Ho una distribuzione utente sul sistema:

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

Quindi, in quegli script ho impostato l'ambiente ruby ​​ed eseguito l'attività di 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 &

Uso questo tipo di configurazione da anni ed è solido. I server non si bloccano. Non ho ancora bisogno del sovraccarico dell'installazione di un altro sistema (come la gemma divina) per sorvegliare questi altri server.

Inoltre, utilizzo una gemma capistrano per gestire il riavvio dei lavoratori in distribuzione.