0

完全な開示:私は完全に非同期モデルに非常に慣れていません。

私のアプリケーションでは、情報をデータベースにコミットする必要があるインスタンスが多数ありますが、アプリケーションは結果を知らなくても続行できます。データベースの書き込みが完了するのを待つ前にページをレンダリングすることは許容されますか?

4

2 に答える 2

1

はい。例えば:

app.get('/', function(req, res, next) {
  res.jsonp({
    message: 'Hello World!'
  });
  var i = 0;
  while (true) {
    i++;
  }
});

ユーザーが「/」にアクセスすると、すぐに結果が表示されます。ただし、実行中のノード インスタンスが 1 つしかない場合、他のユーザーが「/」にアクセスしても、唯一のインスタンスが無限ループに陥っているため、応答がありません。

実行する負荷の高い作業 (CPU バウンドの作業など) が多い場合は、すべての作業をノード インスタンスで行うよりも、MSMQ や AMQP などのメッセージ キューを使用する方がはるかに優れています。

于 2012-11-22T06:52:10.780 に答える
0

もちろん。しかし、何か問題が発生した場合、どのようにユーザーにエラーを通知しますか?ソケットやajaxなどを実行している場合を除き、リクエストが標準的な方法です。

于 2012-11-22T06:01:06.457 に答える