cherrypyを使用してapiを実行し、thread_dataを使用して各スレッドにpostgresqlカーソルを添付します。cherrypyを使用するときにpostgresql接続をロールバックする方法
def connect_pg(thread_index):
cherrypy.thread_data.pgdb = connect(**cherrypy.config['pgargs'])
dict_cur = cherrypy.thread_data.pgdb.cursor(cursor_factory=psycopg2.extras.DictCursor)
dict_cur.close()
それから悪い要求は、このための標準的な解決策はであるエラーメッセージ
InternalError: current transaction is aborted, commands ignored until end of transaction block
、その結果、作製され得る時々
cherrypy.thread_data.pgdb.cursor(cursor_factory=psycopg2.extras.DictCursor)
を使用してカーソルを作成しますロールバックする(http://initd.org/psycopg/docs/faq.html)。
ただし、ロールバックは接続方法であり、カーソルメソッドではありません。
cherrpyのthread_dataを使用しているときにこのエラーを処理するには、どのような良い方法がありますか?
私はこのためにCherryPyツールを作成したいと思います。 SQLAlchemy ORMを使用することもできます。 SQLAlchemy Cherrypy Toolの例を次に示します。https://github.com/open-craft-guild/blueberrypy/blob/75ccae2/src/blueberrypy/tools.py#L102-L155 – webKnjaZ