1

構成された天気を生成/計算する天気シミュレーターがあり、0.5秒ごとにsetIntervalが起動し、一連の計算を実行して、読み取り値を取得し、データを人間が読めるように処理するとします。

次に、おそらくデータが実際に変更された場合にのみ、ソケットを介してログインしたパーティに関連データを送信します。

では、天気シミュレーション/ジェネレーターを子プロセスで単独で実行し、I/Oをノードのシングルスレッドに保持する方がよいでしょうか。

または、それはロック要件を作成しますか?

4

2 に答える 2

1

あなたを導くべき原則は関心の分離だと思います。node.jsサーバーは通信コンジットです。あなたの気象シミュレーターはそれだけです。それらの1つに加えられた変更が、他の変更に関係する可能性はほとんどありません。これは、後で気象シミュレーターが重くなったり、予想よりも多くのユーザーを獲得し始めたりした場合にも、よりスケーラブルな選択肢です。

Webクライアントができれば、天気イベントフィードを直接購読したいと思うでしょうが、シミュレーターでWebSocketをいじくりまわす必要があると思わせないでください。

于 2013-01-30T01:25:19.080 に答える
0

計算が集中する場合は、それらを子プロセスとして実行し、node.jsイベントループの応答性を維持することを強くお勧めします。子のstdoutでイベントデータを聞いて完了したら、データが利用可能になり次第送信できます。

非同期の読み取りと書き込みを使用して、物事をブロックし始めたり、ロックについて心配したりしないようにしてください。

于 2013-01-30T01:21:08.370 に答える