処理に約5〜10分かかるAPIコールがあります。タイムアウトメソッドを設定して、キューに入れられた状態の即時API応答を取得します。長時間実行中のエクスプレスAPIプロセスを別のスレッドで実行するNodeJs
doWork(object) => { /*... Takes 5 minutes */ }
app.post('/longProcess',(req,res)=> {
setTimeout(this.doWork(req.body), 1000);
res.send({ status: 'queued' });
})
以下、視覚
シンプルこれは、即時応答を与える最初の要求のために動作します。しかし、第2の要求はdoWorkが終了するのを待ってロックされます。
SetTimeoutを使用する代わりに、私が実際にやりたいことは、longProcessを1つずつキューに入れて処理する個別のシングルスレッドに送信することです。
提案がありますか?
[私のポスト](http://stackoverflow.com/questions/40085654/run-long-running-express-api-process-in-seperate-thread-nodejs/40088309#40088309)はあなたの質問に答えましたか?それは、あなたが考えるかもしれなかった場合は、[答えを受け入れる](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)今、他の人が探しているのでこの問題は、あなたの質問には良い答えがなく、読むことができないことがあります。それがあなたの質問に答えなかったなら、何が欠けているかについてコメントしてください。私は古い答えを見ています。改善が必要な場合は、それらの内容を更新したいと考えています。ありがとう。 – rsp