2017-09-26 15 views
0

私は、Node-j Express Serverをpg-promiseで使用しています。私は結果を返すために多くの時間がかかるデータベースでいくつかのクエリを持っています。そのようなクエリの場合、私は3秒間のタイムアウトを設定しました。これは、クエリpg-promiseクエリに時間がかかり、サーバからエラーが返された場合、約束を破るものです。しかし、同じ(重い)クエリで後続のリクエストを送信すると、アプリケーションがハングアップし、新しいリクエストの処理に時間がかかります。それはデバッグするのが難しいため、何のエラーもスローしません。私は、ノードアプリケーションがハングアップする理由を何が疑問に思っていましたか?Nodejsアプリケーションが重いリクエストでハングする

+1

大きなプロジェクトにはjavascriptを使用しないでください!!!! –

+0

@HaykManasyanその大きなプロジェクトではありません。それは多くの行をフェッチするdbへの大きなクエリです。 –

+0

あなたのコードを見ることなくあなたを助けることができますか?長いクエリのためにnode.jsが "ハングする"という理由はありません。実際に、私はそれが本当に「ハングアップする」ことを意味するのかも知らない。非常に時間がかかるデータベースクエリーを実行していて、それらの複数を実行しようとすると負荷が大きすぎると、問題はおそらくデータベースか、データベースを使用している可能性があります。 jsの問題。より高速なクエリで目標を達成できるようにデータを再構成するか、実行しようとしていることを再考する必要があります。 – jfriend00

答えて

0

データベースの開発と実装に関する基本的な誤解を常に指摘しています。

次のような問題から、これらの問題は、通常ルート:

  • 悪いデータベース設計、または不可欠なパフォーマンスの考慮事項の欠如
  • 悪いクエリの実行計画、すなわち非常に非効率的なクエリ・ロジックの使用
  • の不正使用接続プール、すなわちデータベース接続の問題
  • 上記の組み合わせ

簡単な問題の説明で、問題の可能性のある巨大なプールに対処しようとしているときに、コード例がなくても、決して役に立つ答えは得られません。それはあまりにも広すぎるため、データベースサービスの作成に関連するトピックがあまりにも多く含まれている必要があります。

+0

私はあなたに同意します。簡単にハックをしたいだけでした。 –

関連する問題