gevent + concurrent.futures 和 SQLAlchemy

gevent + concurrent.futures and SQLAlchemy

我是 运行 和 pyramid 应用程序,在 gunicorn 容器中,带有 gevent 异步工作者, 其中一个端点是通过 kombu.

汇集 AMQP 的长池端点

如果长池有 30 秒超时 returns 来自 AMQP 的一些数据我需要在返回之前将其保存到 postgres,现在的问题是:

是否可以在 gevent 循环中在应用 运行 的上下文中启动 concurrent.futures.ThreadPoolExecutor,并在提交给执行程序的未来中处理 SQLAlchemy 会话和数据持久性?

还是我的思维方式完全错误?

PS 数据库驱动程序是 psycopg2

在我的高并发应用程序中使用 ThreadPoolExecutorgevent 后,我可以确认它工作正常。

但如果数据库驱动程序已经是 gevent "friendly",则不需要,例如:psycogreen