Pyramid フレームワークでアプリを構築しており、web2py-DAL を使用したいと考えています。Firebird-embedded は最適なデータベースです。
1 つの Web ページから複数のビューを非同期的に呼び出そうとするまでは、うまく機能します。「無効なカーソル状態」、「無効なカーソル参照」、または「閉じたカーソルを再度閉じようとしている」などのさまざまなエラーが kinterbasdb ドライバーから発生します。そこでは、sqlite がエラー メッセージなしで単に故障し、Python が使用されます。これらのビュー callable は、SELECT による単純な読み取り以外は何もしていません。
これは、ピラミッド ルート ファクトリが各リクエストで同じ DAL オブジェクトを返す場合に発生します。異なるリクエストからのスレッドが同じカーソルオブジェクトで動作しているように見えるため、他のスレッドがカーソルがここにあると想定している間、カーソルは閉じられます。
各リクエストで新しい DAL オブジェクトを作成すると、別の問題が発生します。各リクエストの新しい接続ごとにメモリが割り当てられ、このメモリは解放されません。そのため、いくつかの docents リクエストの後、数百 MB の無駄なメモリが発生します。
残念ながら、Sqlalchemy はこのプロジェクトのオプションではありません。
何かアイデアはありますか?