приложение flask не применяет изменения кода к серверу с uwsgi и супервизором

У меня есть фляжное приложение, работающее с uwsgi, nginx и супервизором. Что бы я ни пытался, я не могу заставить изменения кода вступить в силу на сервере.

Если я запускаю приложение локально, изменения есть. Если я остановлю и запущу uwsgi, изменения вступят в силу. Если я перезапущу службу супервизора, изменения не вступят в силу.

Я знаю, что в коде есть изменения, потому что я вхожу в систему и вижу изменения, которые я сделал, но по-прежнему работает старый код на определенных маршрутах. Если я изменю заголовок своей страницы, эти изменения вступят в силу сразу, но для моих конечных точек веб-перехватчика они никогда не изменятся.

Вот мои файлы конфигурации.

app.ini
[uwsgi]
module = wsgi

master = true
processes = 5

socket = app.sock
chmod-socket = 660
vacuum = true

die-on-term = true

supervisor
[program:app.io]

command=/home/www/beta/v_env/bin/uwsgi --ini /home/www/beta/app.ini --chown-socket www-data:www-data

directory=/home/www/beta

autostart=true

autorestart=true

stdout_logfile=/home/logs/app_uwsgi.log

redirect=true

stopsignal=QUIT


nginx

server {
listen 80;
server_name beta.domain.io;

location / {
include uwsgi_params;
uwsgi_pass unix:/home/www/beta/app.sock;
uwsgi_read_timeout 1800;
}
}

При тестировании я также получаю эту ошибку во многих восходящих преждевременно закрытых соединениях при чтении заголовка ответа из восходящего потока.


person user1086377    schedule 08.05.2015    source источник


Ответы (1)


Если ваши изменения в коде не отражаются на поведении вашей программы, то либо ваш код не был перезагружен, либо он не изменился, либо вы неправильно поняли свои изменения. Чаще всего это происходит со мной, когда файлы .pyc не обновляются. Вы можете попробовать очистить все файлы pyc из своего проекта, а затем снова запустить его, если у вас есть файлы pyc. Это также поможет перезапустить приложение.

Прежде чем что-либо делать, я рекомендую использовать супервизор для перезапуска вашего приложения. Если ваше приложение находится в супервизоре, вы можете использовать следующие соответствующие методы:

supervisorctl stop all

supervisorctl start all

supervisorctl restart all

Редактировать: я забыл упомянуть, что если вы просматриваете это в браузере, возможно, браузер кэширует более старую версию. Если это так, вам нужно будет сделать жесткое обновление.

person melchoir55    schedule 09.05.2015
comment
Изменения кода отражались, я смотрел на код и видел изменения. Я исключил кеширование браузера, когда внес изменение в html-файл, и оно произошло. Добавление нового маршрута или новых файлов никогда не менялось. Остановка uwsgi и повторный запуск были единственным способом заставить его работать. Перезапуск супервайзера ничего не дал. Я попробую то, что вы предложили по поводу файлов pyc. - person user1086377; 11.05.2015