如何解决SQLAlchemy:分叉代码中的automap_base
我开发了一个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 举报,一经查实,本站将立刻删除。