我最近从我的本地web.py/apache设置移动到共享主机 ,我试图匹配我的家庭配置。弹出一个 的问题是OperationalError“MySQL服务器已经消失”。 在互联网上搜索时,遇到此错误 的人往往会在几小时内处于非活动状态。这发生在几秒钟之间我 。MySQL服务器已经消失
我已经确认使用mod_wsgi的应用程序()函数示例,我实际上正在守护程序模式下运行 。但是,有一个问题,涉及我 的是,如果我将web.ctx.orm吐出到错误日志中,它似乎是每个请求的新对象 。我的sqlalchemy会话对象是不是应该在页面请求之间相同的 ?
这是我的python代码和我的apache安装程序的一部分。有没有 任何会导致这台新机器上出现问题的东西,我之前没有在家用机器上使用过 ?
def load_sqla(handler):
web.ctx.orm = scoped_session(sessionmaker(bind=engine))
try:
try:
return handler()
except web.HTTPError:
web.ctx.orm.commit()
raise
except:
web.ctx.orm.rollback()
raise
finally:
web.ctx.orm.commit()
# If the above alone doesn't work, uncomment
# the following line:
web.ctx.orm.expunge_all()
... urls and controllers ...
app = web.application(urls, globals(), autoreload=False)
app.add_processor(load_sqla)
application = app.wsgifunc()
这里是我的apache设置的一部分。
WSGIDaemonProcess app processes=1 threads=1 python-path=/home/net/
public_html/myapp
WSGIProcessGroup app
WSGIScriptAlias /myapp /home/net/public_html/myapp/managio.py
<Directory "/home/stratton/public_html/myapp">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
allow from all
</Directory>
如上所述,切换到引擎的NullPool解决了这个问题。虽然这可能不是一个永久性的解决方案,但它肯定会缓解开发中的问题,直到我需要切换到高流量生产,并且我可以自己花费时间解决服务器配置问题。谢谢。 – voodoogiant 2011-02-28 18:21:34