sql >> Database >  >> NoSQL >> Redis

Hoe maak ik automatisch een resque worker bij het opstarten?

Ik gebruik de god-edelsteen niet omdat (1) ik een project heb gezien dat erg werd afgeranseld door de complexiteit van de installatie die het introduceerde, en (2) ik persoonlijk erg comfortabel ben met de standaard Linux (Ubuntu) -tools die omgaan met dit soort dingen.

Om de Resque-werknemers te starten bij het opstarten

Ik heb deze code in mijn /etc/rc.local het dossier. Ik heb een implementatie gebruiker op het systeem:

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

Vervolgens stel ik in die scripts de ruby-omgeving in en voer ik de rake-taak uit:

# 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 &

Ik gebruik dit soort opstelling al jaren en het is solide. De servers crashen niet. Ik heb nog geen overhead nodig van het installeren van een ander systeem (zoals de goddelijke edelsteen) om over deze andere servers te waken.

Bovendien gebruik ik een capistrano-edelsteen om de arbeiders opnieuw op te starten tijdens de implementatie.



  1. Vergelijking van memcache, redis en ehcache als gedistribueerd caching-framework

  2. Meerdere groepsbewerkingen met behulp van het Mongo-aggregatieraamwerk

  3. Converteer string naar MongoDB BsonDocument

  4. GridFS in Spring Data MongoDB