gevent + concurrent.futures и SQLAlchemy

Я запускаю и pyramid приложение внутри контейнера gunicorn с асинхронными рабочими gevent, одна из конечных точек - это конечная точка с длинным пулом, объединяющая AMQP через kombu.

Если длинный пул с 30-секундным тайм-аутом возвращает некоторые данные из AMQP, мне нужно сохранить их в postgres перед возвратом, теперь возникает вопрос:

Можно ли запускать concurrent.futures.ThreadPoolExecutor в контексте приложения, работающего в цикле gevent, и иметь дело с сеансами SQLAlchemy и сохранением данных внутри будущего, отправленного исполнителю?

Или я совсем не прав в своих рассуждениях?

Драйвер PS DB — psycopg2.


person canni    schedule 09.06.2016    source источник


Ответы (1)


После использования ThreadPoolExecutor с gevent в моем высококонкурентном приложении я могу подтвердить, что это работает нормально.

Но в этом нет необходимости, если драйвер БД уже gevent "дружественный", например: psycogreen

person canni    schedule 07.07.2016