スレッドのサポートが組み込まれている言語を使用することは、かなり簡単な作業のようですが、
長時間実行メソッド/無限再帰メソッドを終了/タイムアウトする方法はありますか?
たとえば、コールバックを引数として受け取り、呼び出しの前後に何らかの処理を行って結果を返す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を実装する他の方法はありますか?