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.