Question

J'ai récemment obtenu mon première application à travailler dans uwsgi avec Cherokee. Je le code ci-dessous du uwsgi docs :

def application(environ, start_response):
  start_response('200 OK', [('Content-Type', 'text/plain')])
  yield 'Hello World\n'

La page se lit correctement Hello World. Quand je change ce texte à New Thing et rafraîchir, rien ne change. Qu'est-ce que j'oublie?

Ce que j'ai essayé:

  1. l'historique du navigateur de compensation et cache
  2. arrêter et de Cherokee


Edit: Pour clarifier les choses, je change Hello World à New Thing dans le code Python. Puis je me arrête Cherokee, rafraîchir, et je vois évidemment un message d'erreur. Je remets en marche Cherokee, rafraîchir, et je vois Hello World.

Était-ce utile?

La solution

Ainsi, la façon dont cela fonctionne est que Cherokee gère une instance de uwsgi en cours d'exécution dans le sol arrière pour vous. Ce que j'ai remarqué jusqu'à présent, et je ne l'ai pas fini de regarder, est que si vous arrêtez Cherokee il ne semble pas fermer aussi les instances en cours d'exécution vers le bas uwsgi.

Essayez ceci:

sudo service cherokee start
ps aux | grep uwsgi 
# you should see nothing from this ps command

# now hit your web app
sudo service cherokee stop
ps aux | grep uwsgi
# you should see the instance of uwsgi that cherokee started

votre code d'application est en fait courir par uwsgi et Cherokee est plus comme un serveur proxy. Pour mettre à jour le code d'application, vous devez envoyer le signal HUP à uwsgi, non Cherkee.

sudo killall -HUP uwsgi

Cela devrait faire uwsgi à mettre à jour votre application change indépendamment de Cherokee.

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