首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将参数传递给create_engine() (如pool_size )?

如何将参数传递给create_engine() (如pool_size )?
EN

Stack Overflow用户
提问于 2019-10-01 06:44:37
回答 1查看 3.5K关注 0票数 0

一个菜鸟的困惑的问题:

如何在何处设置pool_size?

我发现将docs中的池大小设置为:

代码语言:javascript
运行
复制
engine = create_engine('postgresql://me@localhost/mydb',
                       pool_size=20, max_overflow=0)

但是是否也有一种方法可以将pool_size设置为下面的代码片段,如果是的很高兴知道如何设置的话?

代码语言:javascript
运行
复制
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost/testdb'
db = SQLAlchemy(app)


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return '<User %r>' % self.username
    ......
    ......

错误如下:

代码语言:javascript
运行
复制
sqlalchemy.exc.TimeoutError: QueuePool limit of size 10 overflow 10 reached, connection timed out, timeout 30 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-01 09:17:31

如果您使用的是>=版本2.4,则SQLALCHEMY_ENGINE_OPTIONS键专门用于指定将传递给create_engine (文档)的关键字参数。因此,在您的示例中,将app.config["SQLALCHEMY_ENGINE_OPTIONS"] = {"pool_size": 20}添加到应用程序配置中应该可以做到这一点。

或者,您可以将关键字参数的dict传递给SQLAlchemy()构造函数(文档)的文档参数,例如,SQLAlchemy(app, engine_options={"pool_size": 20})相当于上面的值,但这些值将与在SQLALCHEMY_ENGINE_OPTIONS中定义的任何引擎设置合并,并优先于它们。

最后,有一套SQLALCHEMY_前缀配置键被折旧,但将一直工作到3.0。在这种情况下,app.config["SQLALCHEMY_POOL_SIZE"] = 20。除非您使用的版本早于2.4,否则最好使用前面的选项之一。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58179360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档