2010-08-31 6 views
2

J'ai un démon qui devrait fonctionner derrière mon application rails en faisant des modifications db. J'ai implémenté ce démon en utilisant ruby ​​daemons gem. Je veux démarrer ce démon au début de mon application. Chaque fois que mon application démarre, j'ai besoin de démarrer ce démon.Démon au démarrage de l'application

Comment puis-je faire cela ..?

Répondre

2

Si vous devez démarrer lors de l'initialisation Rails:

  1. Créez un fichier Ruby qui va commencer le démon. Dites invoke_daemon.rb
  2. ce fichier dans Mettre config/initializers/invoke_daemon.rb

Toutefois, si ce n'est pas obligatoire, je suggère la création d'un exécutable binaire ou une tâche rake et à partir manuellement via la ligne de commande. De cette façon, il fonctionne comme un processus séparé. Vous pouvez simplement l'ajouter à vos scripts de déploiement pour les boîtes de production et dans la boîte de développement, exécutez-le manuellement. Quelques exemples seraient searchd, le démon de recherche pour sphinx et thinking_sphinx:delayed_delta râteau tâche de thinking_sphinx.

2

Pour vos connaissances, vous devez prendre apparence de Rails Life cycle

Je viens mis en œuvre cette chose. J'ai implémenté sur Windows7.
J'ai créé un fichier batch, disons my_batch.bat, qui contient la commande ruby, c'est-à-dire ruby ​​my_daemon.rb.
En outre, pour exécuter ce fichier lorsque mon application démarre, je viens d'ajouter une instruction dans le fichier environment.rb qui exécute ce fichier batch. c'est-à-dire le système ("my_batch.bat").
Mais je ne suis pas sûr que ce soit un bon moyen d'implémenter cette tâche.

Questions connexes