Domanda

Recentemente ho ottenuto la mia prima app per il lavoro in uWSGI con Cherokee. Ho usato il seguente codice preso dal uWSGI docs :

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

La pagina legge correttamente Hello World. Quando cambio che il testo a New Thing e di aggiornamento, non cambia nulla. Quello che sto dimenticando?

Quello che ho provato:

  1. cronologia del browser di compensazione e la cache
  2. arresto e l'avvio Cherokee


Edit: Per chiarire, io cambio Hello World al New Thing nel codice Python. Poi mi fermo Cherokee, rinfreschi, e io, ovviamente, viene visualizzato un messaggio di errore. Ricomincio Cherokee, aggiornare, e vedo Hello World.

È stato utile?

Soluzione

Quindi il modo in cui funziona è che Cherokee sta gestendo un'istanza uwsgi esecuzione in terra posteriore per voi. Quello che ho notato finora, e io non ho finito guardare, è che se si spegne Cherokee non sembra di chiudere anche le istanze in esecuzione uwsgi.

Prova questo:

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

Così il vostro codice di applicazione è effettivamente eseguito tramite uwsgi e Cherokee è più simile a un server proxy. Per aggiornare il codice di applicazione è necessario inviare il segnale HUP per uwsgi, non Cherkee.

sudo killall -HUP uwsgi

che dovrebbe causare uwsgi per aggiornare alla vostra applicazione cambia a prescindere dalla Cherokee.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top