wsgi-обслуженная страница не обновляется - PullRequest
0 голосов
/ 13 июня 2010

Недавно я получил свое первое приложение для работы в uWSGI с Cherokee. Я использовал следующий код, взятый из документов uWSGI :

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

Страница правильно читается Hello World. Когда я изменяю этот текст на New Thing и обновляю, ничего не меняется. Что я забыл?

Что я пробовал:

  1. очистка истории браузера и кеша
  2. Остановка и запуск Чероки


Изменить: чтобы уточнить, я меняю Hello World на New Thing в коде Python. Затем я останавливаю Cherokee, обновляю и, очевидно, вижу сообщение об ошибке. Я перезагружаю Cherokee, обновляю и вижу Hello World.

1 Ответ

2 голосов
/ 13 июня 2010

Таким образом, это работает так, что Cherokee управляет запущенным экземпляром uwsgi на заднем плане для вас. Что я заметил до сих пор, и я еще не закончил смотреть на это, так это то, что если вы закрываете Cherokee, он, похоже, также не завершает работу экземпляров uwsgi.

Попробуйте это:

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

Таким образом, код вашего приложения фактически запускается через uwsgi, а Cherokee больше похож на прокси-сервер. Чтобы обновить код приложения, необходимо отправить сигнал HUP в uwsgi, а не в Cherkee.

sudo killall -HUP uwsgi

Это должно привести к обновлению uwsgi ваших изменений в приложениях независимо от их чероки.

...