최근에 내 로컬 web.py /apache 설치에서 공유 호스트 으로 옮겼으며 집 구성과 일치 시키려고합니다. 이라는 하나의 문제가 발생하면 OperationalError "MySQL 서버가 사라졌습니다."라는 오류가 발생합니다. 인터넷을 검색 할 때이 오류를 경험 한 사람들 은 (는) 시간을 사용하지 못했습니다. 이것은 내게 초 사이에 발생합니다.MySQL 서버가 사라졌습니다.
나는 이 실제로 데몬 모드로 실행된다는 mod_wsgi의 application() 함수 예제를 사용하여 확인했습니다. 그래도 문제가 하나 있는데, 저에 관한 걱정은 입니다. 오류 로그에 web.ctx.orm을 보내면 각 요청에 대해 새 개체 인 것으로 보입니다. 내 sqlalchemy 세션 객체가 페이지 요청 사이에 동일한 이 아니어야합니까?
여기 내 파이썬 코드와 아파치 설정의 일부입니다. 이 새로운 기계에 문제를 일으킬만한 것이 있습니까? 전에 내 집에 기계가 있습니까?
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()
여기는 내 아파치 설정의 일부입니다. 에서
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