Via*_*v Z 14 sqlalchemy python-asyncio asgi
我们正在使用 fastapi、uvicorn、sqlalchemy 和 PostgreSQL 构建 ASGI 应用程序。问题是:与具有多个工作线程的 WSGI 应用程序相比,我们应该如何设置pool_size才能create_async_engine不使其成为瓶颈?
据我了解,在 WSGI 应用程序中,如果我们使用每个(和)线程运行N进程,我们将获得最多连接。但是 ASGI 怎么样(如果我们有一个进程)——可以打开多少个连接?另外(因为我们每个进程只创建一个)?那么我们应该将其设置为?Mpool_size=MN * Mpool_sizeAsyncEnginepool_size=N * M
而且,如果我们简单地增加这个数字,那么我们就能够await向数据库发出更多的并发请求,对吧?
其背后的直觉是什么?
提前致谢!
小智 -2
在 sqlalchemy 中添加池大小和最大溢出,您可以使用
engine = create_async_engine(
settings.ASYNC_SQLALCHEMY_URL,
echo=settings.SQLALCHEMY_ECHO,
pool_size=20,
max_overflow=10,
)
Run Code Online (Sandbox Code Playgroud)
在 sqlalchemy 中,您没有最大池大小,但建议池大小为 20
| 归档时间: |
|
| 查看次数: |
4212 次 |
| 最近记录: |