0
私はリモートPostgreSQLデータベース(Amazon RDS上)に接続するFlaskアプリケーションを持っています。ここで私は、データベースへの接続方法の例です:Flaskの自動再接続PostgreSQL
import psycopg2
import sys
from flask import (Flask, render_template, request, redirect, url_for)
# Start a Flask app
app = Flask(__name__, static_url_path='')
# Connect to RDS database
con = psycopg2.connect(**params)
cur = con.cursor()
@app.route('/', methods=['GET'])
def index():
global cur
args = {}
try:
cur.execute("SELECT * FROM x_table")
except psycopg2.InterfaceError:
con = psycopg2.connect(**params)
cur = con.cursor()
# some additional code here ...
return render_template('index.html', args=args)
if __name__ == "__main__":
app.run(debug=True, host="0.0.0.0")
私が持っている問題は、非アクティブの数分後に、接続が閉じて、私はアプリを再起動する必要があるということです。そのエラーを捕捉して再接続するための例外コントロールを追加しましたが、カーソルがすでに閉じられているというエラーが表示されます。
自動的に再接続する適切な方法は何ですか?
エラーは既に処理されています。 'execute()'行を 'except'ブロックの最後にコピーするだけです。そして、結果を保存して処理します。 –