Pagina WSGI servito non viene aggiornata
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:
- cronologia del browser di compensazione e la cache
- 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
.
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.