python - MySQL server has gone away -
i've moved local web.py/apache setup shared host , i'm trying match home configuration. 1 issue popping operationalerror "mysql server has gone away". searching around internet, people come across error tended inactive space of hours. happens me between seconds.
i've confirmed using mod_wsgi's application() function example in fact running in daemon mode. 1 issue though, concerns me if spit out web.ctx.orm error log, appears new object each request. shouldn't sqlalchemy session object same between page requests?
here's python code , portion of apache setup. there cause problems on new machine hadn't had before on home machine?
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 above alone doesn't work, uncomment # following line: web.ctx.orm.expunge_all() ... urls , controllers ... app = web.application(urls, globals(), autoreload=false) app.add_processor(load_sqla) application = app.wsgifunc()
and here's portion of apache setup.
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 </directory>
check docs at: http://code.google.com/p/modwsgi/wiki/configurationdirectives#wsgidaemonprocess
setting processes=1
leaves multiprocessing on, may why you're getting concurrent access same sql connection.
also appears you're using sqlalchemy, maybe try turning on queuepool or nullpool use when make engine?
Comments
Post a Comment