问题描述
我开发了一个API服务器,该服务器与MysqL DB进行交互以反映其架构,并且可以处理多个进程。我的数据库工作代码如下:
from sqlalchemy import MetaData
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm.session import Session
my_engine = create_engine_by_info(my_config)
Metadata = MetaData(bind=my_engine)
Base: type = automap_base(Metadata=Metadata)
class User(Base):
__tablename__ = 'auth_user'
# Relation descriptions...
# Other classes...
Base.prepare(my_engine,reflect=True)
def find_user(field):
with Session(my_engine) as session:
query = session.query(User)
query = query.filter(User.field == field)
records = query.all()
for u in records:
return u
return None
在子进程工作之前,它工作正常:子进程工作后,原始的子进程失去了连接:Lost connection to MysqL server during query
。
我想我应该为每个进程分开my_engine
(例如,一些函数,其中包含一个引擎的字典,其中键是PID),但是如果我的类定义在开始时需要一个引擎,该怎么办?也许我也可以在一个函数中移动类,但这将是一个地狱...那么,这里有什么好的解决方案?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)