Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment créer automatiquement un travailleur resque au démarrage ?

Je n'utilise pas la gemme divine parce que (1) j'ai vu un projet qui a été très malmené par la complexité de la configuration qu'il a introduite, et (2) je suis personnellement très à l'aise avec les outils standard Linux (Ubuntu) qui gèrent ce genre de chose.

Pour démarrer les travailleurs Resque au démarrage

J'ai ce code dans mon /etc/rc.local dossier. J'ai un déploiement utilisateur sur le système :

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

Ensuite, dans ces scripts, je configure l'environnement ruby ​​et exécute la tâche 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 &

J'utilise ce genre d'installation depuis des années, et c'est solide. Les serveurs ne plantent pas. Je n'ai pas encore besoin de l'installation d'un autre système (comme la gemme divine) pour surveiller ces autres serveurs.

De plus, j'utilise une gemme capistrano pour gérer le redémarrage des travailleurs lors du déploiement.