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
在我的高并发应用程序中使用 ThreadPoolExecutor
和 gevent
后,我可以确认它工作正常。
但如果数据库驱动程序已经是 gevent
"friendly",则不需要,例如:psycogreen
我是 运行 和 pyramid
应用程序,在 gunicorn 容器中,带有 gevent 异步工作者,
其中一个端点是通过 kombu
.
如果长池有 30 秒超时 returns 来自 AMQP 的一些数据我需要在返回之前将其保存到 postgres,现在的问题是:
是否可以在 gevent 循环中在应用 运行 的上下文中启动 concurrent.futures.ThreadPoolExecutor
,并在提交给执行程序的未来中处理 SQLAlchemy 会话和数据持久性?
还是我的思维方式完全错误?
PS 数据库驱动程序是 psycopg2
在我的高并发应用程序中使用 ThreadPoolExecutor
和 gevent
后,我可以确认它工作正常。
但如果数据库驱动程序已经是 gevent
"friendly",则不需要,例如:psycogreen