0

私のアプリはCPUを集中的に処理する必要があるため、バックグラウンドジョブとしてそれを行うことを考えています.

Express アプリと kue の両方を同じボックス (異なるコア) で実行したい。それ、どうやったら出来るの?また、メイン アプリとジョブ キューはどのように相互に通信するのでしょうか? それらは同じボックス上にあるため、http 要求を送信するのは非常に無駄に思えます。

4

1 に答える 1

1

複数の Node プロセス (Express サーバーとバックグラウンド タスク ハンドラー) を手動で、または や などのプロセス マネージャーを介して開始できpm2ますforever。またはchild_process.forkExpress アプリから使用して、CPU を集中的に使用するジョブを実行する新しい Node プロセスを開始します。

両方が別々のコアで実行されるという 100% の保証はありませんが、OS にすべてのスケジューリングを任せることができ、OS はおそらく正しいことを行うでしょう。

Kue に関しては、ジョブを保存するための仲介役としてRedisを使用します。Express アプリがそれにジョブを投稿すると、バックグラウンド タスクが各ジョブを取り出して処理し、オプションでメッセージを返信します。

于 2013-11-20T06:58:44.993 に答える