私は、Webサイトでのユーザーのアクティビティ/場所に応じて、さまざまなIOプロセスに優先順位を付けるNode.jsアプリを作成しています。これまでのところ、すべてが順調に実行されています。重要なキューに入れられたアイテムが最初に実行され、重要度の低いものは後で実行されます。
トリッキーな部分は、一度にたくさんのことが起こっていることです-ユーザーがログインする、ユーザーが別のページに移動する、ユーザーがすぐに処理する必要があることをするなど。ほとんどの場合、Node.jsがどのように管理するかについては心配していません。イベントキューですが、場合によっては私です。イベントキューにたくさんのものがあり(おそらく、たくさんのIOバッチが戻ってきて、処理されるのを待っているため)、ユーザーが私のサイトで必要なアクションを実行する状況を想像しています。即時IO要求、およびその要求が戻ったときの即時処理。
スケーリングについて本当に心配する必要があるNode.jsアプリケーションを作成したことがないので、イベントを正しい順序で処理する機能に100%自信がありません。これは心配するのはばかげたことですか?Node.jsは非常に高速に処理するので、ブロックに実際に気付くことはありませんか、それともスケーリングするにつれて、処理される重要なものに大幅な遅延が見られる可能性がありますか?
正当な懸念がある場合、Node.js内に、イベントキューに手動で優先順位を付けることができるインターフェイスはありますか?
アップデート:
@Ricardo Tomasiはコメントで良い点を指摘しました。私のアプリが本当にCPUを集中的に使用している場合、それはおそらくNode.jsに属していないということです。それで、私のアプリは実際にはそれほどCPUを集中的に使用しておらず、おそらく正常に動作するだろうと気づきました。
それをさらに証明するために、私は少しベンチマークを行いました。
var a = new Date().getTime() + 1000;
var b = new Date().getTime();
var c = 0;
while(b < a) {
c++;
b = new Date().getTime();
}
console.log(c + " loops in 1 second.");
私は200,000ループをわずかに下回っていましたが、これは私が心配することは何もないことを十分に証明しました。ただし、Node.jsイベントキューを手動で管理する方法があるかどうかを知りたいと思っています。誰か知っている?