下記のnode-postgresパッケージを参照していますが、この質問はむしろ一般的なものです。ノードjsアプリケーションでのDB接続プールの処理のベストプラクティス?
トップレベルのhttpリクエストハンドラのプールから接続(クライアント)を取得(接続)し、2)そのハンドラ内のすべてのビジネスを行い、3)それを再びリリースします。あなたが終わったらプールしてください。
私はそれがその例でうまくいくと思いますが、あなたのアプリがやや大きくなるとすぐに、これはすぐに痛みを伴うようになります。
は、「クライアント+仕事を得る+クライアントリリース」どこでも私はデシベルに話をする必要があるアプローチをん...私はこれら二つのオプションを考えていますが、私はかなりよく分かりません。
これは良い選択だと思われますが、トップhttpリクエストごとに複数の接続/クライアントを食うことにはなりません(プロジェクトの多くの場所で並列非同期dbコールがあります)。
は
require()
介してアクセス可能なクライアント/接続が、これは良いアイデアと実際に合理的になんとかですか?をグローバルに共有の参照を代入してみてくださいすべての醜いケース(例えば、並列非同期のエラーなど)で「プールリリースに戻る」をうまく処理することは可能ですか?
ありがとうございます。
一切しないでください。代わりに、[pg-promise](https://github.com/vitaly-t/pg-promise)のような高水準のライブラリを信頼して、すべて自動的に行います。 –
おかげさまで@vitaly-t、私はpg-promiseを見ていきます –
私はいくつかのWebアプリケーションを扱っており、pin-a-db-connection-to-the-requestモデルを使用するすべてが必然的にデータベースリソースを処理する方法からスケーラビリティの問題に終わった。(Get + Use + Return)は私の本で優れています。間違っている可能性が非常に少ない事柄。 – Brandon