Python中文
首页
教程
问答
标签
搜索
登录
注册
多线程sqlalchemy webapp中推荐的作用域会话使用模式是什么?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在用python和sqlalchemy-0.7编写一个应用程序。它首先初始化sqlalchemy orm(使用声明式),然后启动一个多线程web服务器——我目前正在使用web.py进行快速原型设计,但这在未来可能会发生变化。我还将为计划的作业等添加其他“线程”,可能使用其他python线程。</p> <p>根据SA文档,我知道我必须使用scoped_session()来获取线程本地会话,因此我的web.py应用程序应该看起来像:</p> <pre><code>import web from myapp.model import Session # scoped_session(sessionmaker(bind=engine)) from myapp.model import This, That, AndSoOn urls = blah... app = web.application(urls, globals()) class index: def GET(self): s = Session() # get stuff done Session().remove() return(stuff) class foo: def GET(self): s = Session() # get stuff done Session().remove() return(stuff) </code></pre> <p>这是处理会议的正确方法吗?</p> <p>据我所知,我应该在每个方法上都得到一个作用域会话,因为它会给我一个事先无法获得的线程本地会话(比如在模块级)。</p> <p>另外,我应该在每个方法结束时调用.remove()或.commit()或<a href="http://www.sqlalchemy.org/docs/07/orm/session.html?highlight=scoped_session#lifespan-of-a-contextual-session" rel="noreferrer">something like them</a>,否则会话仍将包含<a href="http://www.sqlalchemy.org/docs/07/orm/session.html#quickie-intro-to-object-states" rel="noreferrer">Persistent</a>对象,并且我将无法在其他线程中查询/访问相同的对象?</p> <p>如果这个模式是正确的,那么只写一次,或者使用一个decorator,可能会使它变得更好?这样的decorator可以获取会话,调用方法,然后确保正确地释放会话。如何将会话传递给修饰函数?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果为每个请求创建新会话,并且每个请求由单个线程处理,则不需要创建作用域会话。</p> <p>必须调用<code>s.commit()</code>使<em>挂起的</em>对象<em>持久化,即将更改保存到数据库中。</p> <p>您还可以通过调用<code>s.close()</code>来关闭会话。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Kerasterflow预训练模型中的纯训练偏差
9 回答
KerasTF Conv2D模型运行时无响应型号.fi
7 回答
Kerastuner Randomsearch:TypeError:(“关键字参数未理解:”,“激活”)
2 回答
Kerastuner ValueError:形状(320,)和(1,)不兼容
2 回答
Kerastuner:“ValueError:不是法律参数”问题,当我使用LSTM网络时,但密集层工作正常
4 回答
KerasTuner:是否可以在目标/度量函数中使用测试/验证集?
8 回答
KerasTuner自定义目标函数
7 回答
kerastuner调整层数会创建与报告的层数不同的层数
2 回答
KerasTuner运行时错误:构建模型的失败尝试太多
10 回答
kerasv1.2.2与kerasv2+的奇怪行为(精确度上的巨大差异)
8 回答
kerasvis中visualize_-cam/visualize_显著性的热图输出形状
7 回答
Kerasvis和tfkerasvis的激活最大化不适用于MobileNetV2模型
4 回答
Kerasvis对于显著性图表,我们应该使用softmax还是线性激活
2 回答
Kerasvis给出以下错误:AttributeError:多个入站节点
9 回答
kerasyolov3模型中预期输入和目标的格式和形状
8 回答
Keras一个GPU可以同时训练两个不相关的模型吗?
4 回答
Keras一类CNN两个输入,每一步一个
8 回答
keras三维张量上的Softmax层
6 回答
Keras三维目标预测
9 回答
keras上的flatten与python中的Image的区别
10 回答