提交 b3690505 编写于 作者: 赖龙

update add configurable DB settings

上级 fa4f0a07
......@@ -11,7 +11,9 @@ grpc_server = Server()
def create_app(testing_config=None):
config = testing_config if testing_config else settings.DefaultConfig
db.init_db(uri=config.SQLALCHEMY_DATABASE_URI, echo=config.SQL_ECHO)
db.init_db(uri=config.SQLALCHEMY_DATABASE_URI, echo=config.SQL_ECHO, pool_size=config.SQL_POOL_SIZE,
pool_recycle=config.SQL_POOL_RECYCLE, pool_timeout=config.SQL_POOL_TIMEOUT,
pool_pre_ping=config.SQL_POOL_PRE_PING, max_overflow=config.SQL_MAX_OVERFLOW)
from mishards.connections import ConnectionMgr
connect_mgr = ConnectionMgr()
......
......@@ -23,15 +23,12 @@ class DB:
uri and self.init_db(uri, echo)
self.session_factory = scoped_session(sessionmaker(class_=LocalSession, db=self))
def init_db(self, uri, echo=False):
def init_db(self, uri, echo=False, pool_size=100, pool_recycle=5, pool_timeout=30, pool_pre_ping=True, max_overflow=0):
url = make_url(uri)
if url.get_backend_name() == 'sqlite':
self.engine = create_engine(url)
else:
self.engine = create_engine(uri, pool_size=100, pool_recycle=5, pool_timeout=30,
pool_pre_ping=True,
echo=echo,
max_overflow=0)
self.engine = create_engine(uri, pool_size, pool_recycle, pool_timeout, pool_pre_ping, echo, max_overflow)
self.uri = uri
self.url = url
......
......@@ -50,10 +50,16 @@ class TracingConfig:
}
}
max_overflow=0
class DefaultConfig:
SQLALCHEMY_DATABASE_URI = env.str('SQLALCHEMY_DATABASE_URI')
SQL_ECHO = env.bool('SQL_ECHO', False)
SQL_POOL_SIZE = env.int('pool_size', 100)
SQL_POOL_RECYCLE = env.int('pool_recycle', 5)
SQL_POOL_TIMEOUT = env.int('pool_timeout', 30)
SQL_POOL_PRE_PING = env.bool('pool_pre_ping', True)
SQL_MAX_OVERFLOW = env.int('max_overflow', 0)
TRACER_PLUGIN_PATH = env.str('TRACER_PLUGIN_PATH', '')
TRACER_CLASS_NAME = env.str('TRACER_CLASS_NAME', '')
ROUTER_PLUGIN_PATH = env.str('ROUTER_PLUGIN_PATH', '')
......@@ -65,5 +71,10 @@ class DefaultConfig:
class TestingConfig(DefaultConfig):
SQLALCHEMY_DATABASE_URI = env.str('SQLALCHEMY_DATABASE_TEST_URI', '')
SQL_ECHO = env.bool('SQL_TEST_ECHO', False)
SQL_POOL_SIZE = env.int('pool_size', 100)
SQL_POOL_RECYCLE = env.int('pool_recycle', 5)
SQL_POOL_TIMEOUT = env.int('pool_timeout', 30)
SQL_POOL_PRE_PING = env.bool('pool_pre_ping', True)
SQL_MAX_OVERFLOW = env.int('max_overflow', 0)
TRACER_CLASS_NAME = env.str('TRACER_CLASS_TEST_NAME', '')
ROUTER_CLASS_NAME = env.str('ROUTER_CLASS_TEST_NAME', 'FileBasedHashRingRouter')
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册