LINUX.ORG.RU

Туплю с uWSGI

 ,


0

1

Имеется маленький питоновский скрипт, ранее без проблем выполнявшийся через FastCGI + Apache. Пришлось переехать на Nginx + uWSGI. Переделал print() на return []. Вроде бы всё работает, кроме одной фигни: при сабмите формы результат работы скрипта выводится под результатами предыдущих запросов (!). То есть скрипт выводит табличку, при следующем запросе он выводит новую табличку под старой, потом при следующем – новую под этими двумя, т д. Можно зайти из другого браузера, неважно, тот же эффект. И так до рестарта uwsgi.service. Это нормальное поведение с учётом того, что uwsgi постоянно запущен? как от этого избавиться? Понятно, что я какую-то явную глупость сделал, не пойму где.

ps: сам дурак, result = [] надо было делать не в начале модуля, который выполняется только раз при запуске сервиса.

Кусок nginx.ini:

	location ~ \.py$ {
		include	uwsgi_params;
		uwsgi_pass unix:/var/www/wsgi/wsgi.sock;
		}

uwsgi.ini:

[uwsgi]
module = tables:app
pythonpath = /var/www/wsgi

master = false
processes = 1
uid = _nginx
gid = _webserver

socket = /var/www/wsgi/wsgi.sock
chmod-socket = 664
vacuum = true
logto = /var/log/uwsgi.log
die-on-term = true

★★

Последнее исправление: olegkrutov (всего исправлений: 3)

Ответ на: комментарий от Scondo

Ну да. Вот начало app, прописанного в конфиге uwsgi:

def app(environ, start_response):
    start_response('200 OK', [('Content-type', 'text/html; charset=utf-8')])

Дальше всё добавляю к списку, возвращаю список. yield хорошая идея, как я понимаю, чтоб получать вывод по мере его образования, но там не столько того вывода.

olegkrutov ★★
() автор топика
Последнее исправление: olegkrutov (всего исправлений: 1)