私は次のコードで働いている:私はsendToQueueコマンドをコメントアウトした場合、私はそれをコメントしていない場合、それは、私はエラーを取得し、エラーなしで終了しコールバックを強制的に処理するよう強制しますか?
for (var x = 1; x < 10000000; x++) {
count++
myObj.name = count
ch.sendToQueue(queueName, new Buffer(JSON.stringify(myObj)));
}
:FATAL ERROR:CALL_AND_RETRY_LASTの割り当てが失敗しました - プロセスメモリ不足。私はsendToQueueコールをコールバック・キューに追加しているので、これが起こっていると思います。これらはビルド・アップし、メモリが残らなくなるまでメモリを占有します。
コールバックを強制的に実行して、ビルドアップしないようにする方法はありますか?
これはNode/JavaScriptの最適なユースケースではないかもしれないと思いますが、そのような場合は確認が大好きです。
ループを複数の小さなループに分割する方法があると私は理解しています。この特定の使用例では、私はそれを行うことができません。長いループを1回実行する必要があります。
'ch.sendToQueue'とは何ですか?ドキュメントはありますか? – qxz
メッセージキューに追加するためのAMQPです – Ken
'sendToQueue'が何であるか知っていなければなりません。巨大な 'for'ループを実行すると、他のnode.jsコードが' for'ループ(ガベージコレクションを含む)中に実行されることはありません。 'sendToQueue'が何をしているのか、それを助けるために他にどのような処理オプションがあるのかを知る必要があります。 – jfriend00