Я использую модуль concurrent.futures Python (версия модуля 2.1.3, версия Python 2.7.3). У меня есть nginx, работающий с 4 рабочими процессами, и 4 запущенных uWSGI (в Ubuntu точно) в качестве демона выскочки со следующей конфигурацией uwsgi (обратите внимание, что enable-threads — это правда, поэтому GIL доступен, а lazy — это правда):
virtualenv=[ path to venv ]
chdir=[ path to python project ]
enable-threads=true
lazy=true
buffer-size=32768
post-buffering=true
processes=4
master=true
module=[ my app ].wsgi
callable=wsgi_app
logto=/var/log/uwsgi.log
pidfile=[ replaced ]
plugins=python27
socket=[ replaced, but works fine ]
Все приложение работает нормально, но кажется, что какой-то отсутствующий контекст недоступен для пула фьючерсов: когда я вызываю somefunc() без future(), все хорошо, но когда я вызываю somefunc() с future, HTTP-запрос ( Я использую Flask) зависает довольно долго, прежде чем сбой.
Единственные записи в файле журнала связаны с HTTP-запросами и общими элементами запуска wsgi, такими как:
WSGI application 0 (mountpoint='') ready on interpreter 0x11820a0 pid: 26980 (default app)
Как я могу получить некоторое представление о выполнении фьючерсов или выяснить, какой контекст может быть недоступен для пула фьючерсов?
Имеет ли это смысл?
Заранее спасибо.