Rails 3.2 + unicorn + postgres DB を使用していますが、質問があります - unicorn は DB 接続をどのように処理しますか?
私が理解する方法:
- ユニコーン マスター プロセスが X 子プロセスをフォークします。
- 各子プロセスのセットアップ DB 接続 – before_fork で閉じ、after_fork で接続を確立します。
- プロセスごとに接続を使用します(Rails DB接続プールを使用する場合、プロセスごとにY(database.ymlから)DB接続を作成します)-つまり、プロセスが機能している場合(プロセスを強制終了しない限り常に機能します)、接続を開いたままにしておきますWeb リクエストは、(after_fork で開かれた) 同じ接続を使用します。
- 開かれた接続は、postgres (または他の DB) でアイドルまたはアクティブとして表示されます。
それは正しいですか、それとも何かを逃しましたか?