4

たとえば、ユーザーがオーディオ ファイルの処理を要求した場合、もちろん nodejs は負荷の高い処理を実行できないため、ワーカー プロセスにオフロードする必要があります。

これらのワーカーは、おそらくイベントに発行/サブスクライブできる必要があり、死ぬと再生成され、キューは負荷分散し、キャッシュを維持し、存続できる必要があります。私は 0MQ を見たことがあり、他の人もそれを気に入っていますが、それを Web アプリに統合する方法がわかりません...

これらのワーカー プロセスを作成および管理する業界標準の方法は何ですか? そして、使用されるツールは何ですか?

編集:もう1つ:オーディオ処理に時間がかかり、リクエストがタイムアウトするとします。タイムアウトを増やす以外にそれを回避する方法はありますか?

編集 2: ワーカーとは、Heroku ワーカー dyno のようなものです。どのように機能しますか?

4

1 に答える 1

1

個人的には、タスクを redis データベースに追加するようなことをしたいと思います。次に、別のプロセス (処理負荷が非常に高い場合は別の言語で記述されている可能性があります) が redis データベースのそのキーにサブスクライブされ、追加されるタスクが開始されます。一部のワーカー スレッド自体を管理することもできます。

タイムアウトの場合、1 つの要求を使用してタスクのみを開始し、別の要求を使用して結果を取得することができます (結果がまだ利用できない場合は longpolling を使用するか、Websocket を介したより良いサーバープッシュを使用します)。

于 2012-01-20T06:32:48.730 に答える