uWSGI を使用した同時データベース アクセスの最適なソリューションを見つけようとしています。
いくつかの詳細:
私は python3 (3.3) と sqlite3 を使用しています。より多くのプロセスでアプリをスケールアップできるようにしたい (そしてスレッドも? --threads が uWSGI に対して何をするのか正確にはわかりません...)
sqlite3 には、同時プロセス使用のサポートが組み込まれていますが、必ずしもスレッドではありません。
では、ロックを実装する sqlite3 接続オブジェクトの周りにある種のラッパーを作成する必要がありますか?
または、すべての DB 処理を実行するある種のワーカー プロセスを使用する方がよいでしょうか。この場合、uWSGI でこの別のワーカーを開始するにはどうすればよいでしょうか。また、メッセージを Web ワーカー プロセスに渡すにはどうすればよいでしょうか。
または、より良い解決策がありますか?
最後に、関連する質問があります。リクエストごとにデータベース接続を作成する必要がありますか、それとも、ワーカーが生きている間開いたままになるプロセスごとに永続的な接続を作成する必要がありますか?
すべてのリクエストで接続を作成するのはコストがかかるように思えますが、永続的な接続が問題を引き起こさないようにしたいと考えています。