1
私は典型的なPyramid + SQLAlchemy + Postgresアプリケーションを持っています。ストレステストでまたは例外的負荷の瞬間にとPGで低max_connections
設定で、OperationalException
が発生していることが起こるかもしれません:どのようにPyramid + SQLAlchemyで起こったOperationalErrorをキャッチする?
OperationalError: (psycopg2.OperationalError) FATAL: sorry, too many clients already
を今、明らかに私はしたくないどこでもこの:
try:
DBSession.query(Item)...
except OperationalError as e:
log.error(...)
"グローバルに"この例外をキャッチして適切に処理する方法はありますか?
私のアプリは、典型的なピラミッド状にZopeTransactionExtension
を使用しています。
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
http://docs.pylonsproject.org/projects/pyramid_exclog/en/latest/あなたのかゆみを傷つけたり、カスタム[tween](http://docs.pylonsproject.org/projects/pyramid/en /latest/narr/hooks.html#registering-tweens)。 –