7

だから私の乗客は私のRailsアプリの5つのインスタンスをスピンアップします

Connection.new( "localhost"、3000、:pool_size => 1、:timeout => 5)を使用してMongoDBに接続します

Railsアプリの起動時に、リクエストごとではなくオーバーヘッドのみが発生するのに、なぜ「接続のプール」が必要なのですか?1つのプロセスに複数の接続が必要なのはなぜですか?

そして、タイムアウトの目的は何ですか?接続をタイムアウトさせたいのはなぜですか?Railsプロセスの存続期間を通じて存続するべきではありませんか?

混乱している...

この質問はRubyとMongoに固有ですが、他の言語/データベースにも当てはまると思います。

4

1 に答える 1

3

ここでは接続プールを使用する必要はありません。Passenger を使用しているので、start_worker_process イベントをキャッチして、各インスタンスが個別の接続を使用していることを確認してください。これは、ドライバーの README に記載されています。

接続プーリングは、特定のマルチスレッド アプリに役立ちます。pool_size は、接続が処理する同時スレッドの最大数であり、timeout は、例外がスローされる前にスレッドが使用可能なソケットを待機できる最大秒数です。

于 2010-02-24T17:06:30.980 に答える