完全な開示:私は完全に非同期モデルに非常に慣れていません。
私のアプリケーションでは、情報をデータベースにコミットする必要があるインスタンスが多数ありますが、アプリケーションは結果を知らなくても続行できます。データベースの書き込みが完了するのを待つ前にページをレンダリングすることは許容されますか?
はい。例えば:
app.get('/', function(req, res, next) {
res.jsonp({
message: 'Hello World!'
});
var i = 0;
while (true) {
i++;
}
});
ユーザーが「/」にアクセスすると、すぐに結果が表示されます。ただし、実行中のノード インスタンスが 1 つしかない場合、他のユーザーが「/」にアクセスしても、唯一のインスタンスが無限ループに陥っているため、応答がありません。
実行する負荷の高い作業 (CPU バウンドの作業など) が多い場合は、すべての作業をノード インスタンスで行うよりも、MSMQ や AMQP などのメッセージ キューを使用する方がはるかに優れています。
もちろん。しかし、何か問題が発生した場合、どのようにユーザーにエラーを通知しますか?ソケットやajaxなどを実行している場合を除き、リクエストが標準的な方法です。