2

スレッドのサポートが組み込まれている言語を使用することは、かなり簡単な作業のようですが、

長時間実行メソッド/無限再帰メソッドを終了/タイムアウトする方法はありますか?

たとえば、コールバックを引数として受け取り、呼び出しの前後に何らかの処理を行って結果を返すAPIがあるとします。

function api(data,callback) {
  processedData = before(data);
  result = callback(processedData);
  processedResult = after(result);
  return processedResult;
}

悪名高い開発者が次のコールバックでこのAPIを呼び出す場合

function cpuFrenzy(data) {
  while(true);
} 

result = api( {} , cpuFrenzy);
render(result);

apiの結果はHTMLのレンダリングに使用されます。

シングルスレッドのノードjsは、サーバーへのすべてのリクエストをブロックします。

では、すべてのWebリクエストのブロックを回避するために、事前設定された時間を超えてAPIがコールバックメソッドの実行をタイムアウト/終了する方法はありますか?

ない場合、このAPIを実装する他の方法はありますか?

4

1 に答える 1

3

tripwireを確認してください:https ://github.com/tjanczuk/tripwire

于 2012-09-16T09:43:07.303 に答える