Pergunta

Recentemente, consegui meu primeiro aplicativo para trabalhar na UWSGI com Cherokee. Eu usei o seguinte código retirado do uwsgi docs:

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

A página lê corretamente Hello World. Quando eu mudo esse texto para New Thing E atualize, nada muda. O que estou esquecendo?

O que eu tentei:

  1. Limpando a história do navegador e cache
  2. parando e começando Cherokee


Editar: para esclarecer, eu mudei Hello World para New Thing no código Python. Então eu paro de Cherokee, atualizo e obviamente vejo uma mensagem de erro. Eu reinicio Cherokee, refresco, e vejo Hello World.

Foi útil?

Solução

Portanto, a maneira como isso funciona é que Cherokee está gerenciando uma instância UWSGI em execução no fundo para você. O que notei até agora, e não terminei de olhar, é que, se você desligar o Cherokee, ele também não parece encerrar as instâncias da UWSGI.

Experimente isso:

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

Portanto, seu código de aplicativo é realmente executado via UWSGI e Cherokee é mais como um servidor proxy. Para atualizar o código do aplicativo, você precisa enviar o sinal HUP para o UWSGI, não o Cherkee.

sudo killall -HUP uwsgi

Isso deve fazer com que o UWSGI seja atualizado para as alterações do seu aplicativo, independentemente do Cherokee.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top