sql >> データベース >  >> RDS >> PostgreSQL

FlaskとSQLAlchemyは、PostgreSQLのトランザクション接続で多くのIDLEを引き起こします

    この状況は、Flaskをデバッグモード 。コードが例外をスローし、デバッガーが起動した場合、トランザクションが「ロールバック」または「削除」されることはありません。その結果、失敗したリクエストで使用されたセッションがプールに戻されることはありません。

    解決策は、デバッグモードを無効にすることです。

    編集:

    私がこれが起こるのを見た別の状況があります。自律的に実行されるコードがある場合(つまり、HTTPトランザクションの一部ではない場合、Flaskアプリの起動時に開始されて生成される独立したスレッドのように)、通常はスリープが発生します。スリープ前にセッションにアクセスすると、スリープ中にこのようなトランザクションがハングすることになります。

    もう1つの可能性は、アプリの作成機能からセッションにアクセスしていることです。その場合は、必ず.remove()を実行してください。そうしないと、そのセッションがgeventアプリのメインスレッドでハングしたままになる可能性があります。



    1. postgresでの英数字の大文字と小文字を区別しない並べ替え

    2. 複数の異種データベース間で結合を実行します。 PostgreSQLとMySQL

    3. simpleJdbcCallがPl/SQLプロシージャを呼び出しています-ORA-22922存在しないLOB値

    4. Postgresql:json配列オブジェクトに要素を追加します