Jeg bruger ikke gud-perlen, fordi (1) jeg har set et projekt, der var meget tæsket af kompleksiteten af opsætningen, det introducerede, og (2) jeg er personligt virkelig fortrolig med de standard Linux (Ubuntu) værktøjer, der håndterer denne slags ting.
For at starte Resque-arbejderne ved opstart
Jeg har denne kode i min /etc/rc.local
fil. Jeg har en implementering bruger på systemet:
# Start Resque
su -l deploy -c "/home/deploy/start-resque-workers"
su -l deploy -c "/home/deploy/start-resque-webui"
Derefter, i disse scripts, opsætter jeg ruby-miljøet og kører rake-opgaven:
# 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 &
Jeg har brugt denne slags opsætning i årevis, og den er solid. Serverne går ikke ned. Jeg har endnu ikke brug for overhead til at installere et andet system (såsom gudestenen) for at holde øje med disse andre servere.
Derudover bruger jeg en capistrano-perle til at håndtere genstart af arbejderne under udsendelse.