У меня возникли проблемы с запуском и запуском простой многопоточной функции в моем веб-приложении.Фоновые потоки, не начинающиеся до выключения сервера
Im использование колбы, uwsgi, nginx на Ubuntu 12.04.
Каждый раз, когда я запускаю новый поток, он не будет выполняться до того, как я выключу сервер uwsgi. Это очень странно!
Если я выполняю простую задачу (например, печать), она будет выполняться как ожидается 9/10 раз. Если я выполняю тяжелое вычислительное задание (например, OCR в файле), он всегда будет начинает выполнение при перезапуске сервера (выполнение выключения)
Любая идея, почему мой код не работает должным образом?
Код:
def hello_world(world):
print "Hello, " + world # This will get printed when the uwsgi server restarts
def thread_test():
x = "World!"
t = threading.Thread(target=hello_world, args=(x,))
t.start()
@application.route('/api/test')
def test():
thread_test()
return "Hello, World!", 200
EDIT 1:
Моя конфигурация uwsgi выглядит следующим образом:
[uwsgi]
chdir = /Users/vingtoft/Documents/Development/archii/server/archii2/
pythonpath = /Users/vingtoft/Documents/Development/archii/server/archii2/
pythonpath = /Users/vingtoft/Documents/Development/archii/server/ml/
module = app.app:application
master = True
vacuum = True
socket = /tmp/archii.sock
processes = 4
pidfile = /Users/vingtoft/Documents/Development/archii/server/archii2/uwsgi.pid
daemonize = /Users/vingtoft/Documents/Development/archii/server/archii2/uwsgi.log
virtualenv = /Users/vingtoft/Documents/Development/virtualenv/flask/
wsgi-file = /Users/vingtoft/Documents/Development/archii/server/archii2/app/app.py
ssl = True
Разве вы не должны ждать окончания потока до завершения процесса? –
Нить не запускается, прежде чем я выключу сервер. – Vingtoft
Можете ли вы показать конфигурацию uWSGI? – GwynBleidD