フレームワークを使ってアプリケーションを開発していますbottlepy
。標準ライブラリWSGIRefServer()
を使用して開発サーバーを実行しています。これはシングルスレッドサーバーです。
さて、本番環境に入るときは、マルチスレッドの本番サーバーに移行したいと思います。選択肢はたくさんあります。CherryPyを選んだとしましょう。
今、私のコードでは、単一のwsgi
アプリケーションを初期化しています。それ以外にも、他のものを初期化しています...
- Memcached接続
- マコテンプレート
- MongoDB接続
標準ライブラリwsgiref
はシングルスレッドサーバーであり、単一のwsgiアプリ(wsgi呼び出し可能)のみを作成しているため、すべてが正常に機能します。
私が知りたいのは、マルチスレッドサーバーに移動すると、wsgiアプリ、初期化コード、別のサーバーへの接続などがどのように動作するかということです。
マルチスレッドサーバーは、スレッドごとにwsgiアプリの個別のインスタンスを作成しますか?また、新しいリクエストごとに新しいスレッドが生成されますか(つまり、リクエストごとに新しいwsgiアプリを意味します)?
memcached、mongoDBなどへの接続は、スレッド間で共有されますか?他に何がスレッド間で共有されますか
スレッドサーバーの要求/応答サイクルについて説明してください