私が必要とするものをよりよく理解するために単純化しました。私がしなければならないことは、未知のnodejsプロセスがあることです。それらが完了したかどうかなど)、現在のプロセス状態をデータベースに保存する更新プロセスが必要です。そのためにはスタートアップ(「スタート」を格納)と終了プロセスがprocess.on('beforeExit', function() { ... });
の上にあります。今私たちは顧客から要求されている「実行中の」プロセスを処理しなければなりません。そのために、10分ごとに状態をタイムスタンプで実行するように更新する必要があります(この機能は既に存在し、state.setRunningState()
プロセスライフタイムを延長しないNodeJs setInterval
と呼ばれています)問題は:いくつかの時間は何もイベントなしではるかに時間があるので、2番目のオプションはsetInterval()
であり、私の質問についてはここにあります:私がsetIntervalを使用するとnodejsプロセスが終了しないので、Intervalがクリアされるまでプロセスは無限に実行されます。clearInterval()
質問は次のとおりです。 nodejsプロセスの寿命を延ばすことなく、このようなタイムアウトを作成する方法。すべてが完了したら、残りの期間は無視して無視してください。
について読んで興味があるかもしれません。exit() ' –
私はそれを知っていますが、まだ答えがありません。なぜなら、メインプロセスが終了したときは分かりません。完全に非同期で、イベント駆動型のみです。 Btw:process.exit()もprocess.on( "beforeExit")というイベントをスキップします。 –
この質問を3回読みましたが、私はまだあなたが何を求めているのか理解できません... "作成する方法はありますかそのようなタイムアウトはnodejsプロセスの寿命を延ばすことなく "< - そう、あなたは間隔を望んでいない?代わりに 'setTimeOut'を見たことがありますか? 「しかし、私はclearInterval()を呼び出す必要があるかどうかもわかりません」 - イベントベースですが、間隔をクリアするタイミングを知るのに役立つイベントはありません。あなたは他の人に知ってもらいたいと思いますか? – Josep