fix: monkey-patch get_sor_context to reuse global DBPools
This commit is contained in:
parent
b51eb9f626
commit
dd028e2203
21
app/pccs.py
21
app/pccs.py
@ -22,11 +22,22 @@ def init():
|
||||
|
||||
DictObject.__getattr__ = _patched
|
||||
|
||||
# 验证 monkey-patch 生效
|
||||
from ahserver.serverenv import ServerEnv
|
||||
e = ServerEnv()
|
||||
dbname = e.get_module_dbname('rbac')
|
||||
print(f'[pccs] get_module_dbname(rbac) = {dbname}', flush=True)
|
||||
# Monkey-patch get_sor_context — 复用已初始化的 DBPools 而非创建空实例
|
||||
from appPublic.jsonConfig import getConfig
|
||||
import sqlor.dbpools as _dbp
|
||||
from sqlor.dbpools import DBPools
|
||||
|
||||
config = getConfig()
|
||||
_global_db = DBPools(config.databases)
|
||||
|
||||
_orig_sor_ctx = _dbp.get_sor_context
|
||||
|
||||
async def _patched_sor_ctx(env, modulename, errorback=None):
|
||||
dbname = env.get_module_dbname(modulename)
|
||||
async with _global_db.sqlorContext(dbname) as sor:
|
||||
yield sor
|
||||
|
||||
_dbp.get_sor_context = _patched_sor_ctx
|
||||
|
||||
from appbase.init import load_appbase
|
||||
from rbac.init import load_rbac
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user