Следующий код приблизительно соответствует реальному коду. Flask приложение при запуске создает рабочий поток. Функция маршрутизации использует обработку данных, выполняемую рабочей функцией.
app = Flask(__name__)
timeStr=""
def loop ():
global timeStr
while True:
time.sleep (2)
timeStr =datetime.now().replace(microsecond=0).isoformat()
print (timeStr)
ThreadID = Thread (target=loop)
ThreadID.daemon = True
ThreadID.start()
@app.route('/')
def test():
return os.name + " " + platform.platform() + " " + timeStr
application=app
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080, debug=True)
Вышеупомянутое приложение прекрасно работает в течение нескольких дней после запуска, например:
python3 app.py
Однако в uwsgi, хотя я включил потоки , приложение не работает. Он не обновляет global timeStr
sudo /usr/local/bin/uwsgi --wsgi-file /home/pi/pyTest/app.py --http :80 --touch-reload /home/pi/pyTest/app.py --enable-threads --stats 127.0.0.1:9191
Что мне нужно сделать, чтобы приложение работало правильно под UWSGI, чтобы я правильно создал службу systemd?