7

私のバックエンド構成は次のとおりです。

  • Ubuntu 12.04
  • パイソン 2.7
  • フラスコ 0.9
  • Flask-SQLAlchemy
  • ポストグル 9.2

次のエラー メッセージが表示されます。

TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30

db.session を明示的に閉じる必要がありますか? セッションが範囲外になったときにプールに接続するべきではありませんか?

4

5 に答える 5

2

Flask-SQLAlchemy が接続プールを管理するため、通常、これを行う必要はありません。with app.app_context()ただし、特にリクエスト コンテキストの外部でクエリを実行している場合や、どこかでクエリを実行している場合は、これを制御できない場合があります。

Flask-SQLAlchemy とapschedulerを組み合わせたとき、スケジューラが実行したジョブのセッションを明示的に閉じる必要があることに気付きました。そうしないと、数時間実行した後にこのエラーが発生しました。

于 2015-02-18T03:02:00.780 に答える
0
@app.teardown_request
def checkin_db(exc):
    try:
        g.db.close()
    except AttributeError:
        pass
于 2013-05-20T14:58:31.453 に答える