Question

Je suis en cours d'exécution d'une application qui donne le coup d'envoi d'un processus Scheduler Rufus dans un initialiseur. L'application est en cours d'exécution avec des passagers dans la production et je l'ai remarqué un couple de comportements étranges:

Tout d'abord, afin de redémarrer le serveur et assurez-vous que l'initialiseur soit lancé, vous avez à la fois touch tmp/restart.txt et charger l'application dans un navigateur. À ce moment-là, les feux de initialiseur. La chose horrible est que si vous faites seulement le toucher, les processus prévus par Rufus se réinitialisés et ne sont pas reprogrammées jusqu'à ce que vous chargez l'application dans un navigateur.

Ce seul je peux traiter. Mais cela nous amène au deuxième problème: Je remarque que le processus prévu n'a pas été exécuté, donc je charger une page et tout à coup le fichier journal me dit qu'il est en cours d'exécution initialiseurs comme si je l'avais redémarré. Donc, à un moment donné, au hasard des passagers redémarre comme si je l'avais touché tmp / restart.txt et effaçant mes processus programmés.

J'ai une compréhension très pauvre de passagers et l'intégration de Rails, donc je ne sais pas si cela est aberrant de redémarrer l'ordinateur de temps en temps tout ou partie de l'architecture. Quelqu'un peut-il offrir une sagesse sur cette situation?

Était-ce utile?

La solution

Ce que vous décrivez est la façon dont fonctionne passagers. Il engendre de nouvelles instances de l'application lorsque le trafic les justifie et les arrête après des périodes d'inactivité pour libérer des ressources.

Vous devriez lire la documentation des passagers, en particulier le contrôle des ressources et de la section d'optimisation . Il existe des paramètres qui peuvent empêcher l'application d'être arrêté par passager, si c'est ce que vous voulez.

En utilisant le réglage de PassengerPoolIdleTime, vous pouvez conserver au moins un processus en cours, mais vous voulez certainement passagers pour démarrer d'autres instances de l'application si nécessaire. Ce fil sur le Rufus Group Scheduler Google mentionne l'utilisation des fichiers de verrouillage pour éviter plus d'un processus de démarrage du planificateur, qui peut vous être utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top