web-dev-qa-db-ja.com

Node.jsとCron Jobで間隔を設定しますか?

Node.jsを学習しており、空のLinux仮想マシンとインストール済みノードをセットアップするだけです。

私は毎分絶えず機能を実行しています

var request = require('request')
var minutes = 1, the_interval = minutes * 60 * 1000

setInterval(function() {
    // Run code
  })
}, the_interval);

また、現在時刻に基づいて他の機能を追加することを検討してください。 -(例:dateTime =日曜日の正午に関数を実行)

私の質問は、従来のcronジョブのセットアップと比較して、このようなセットアップを実行することには欠点がありますか?

とにかく毎分ノードでこの関数を実行しなければならないことに注意してください。

33

それは、その分間隔をどれだけ厳密に守らなければならないかと、その間にノードスクリプトが他に何かをしているかどうかに依存します。スクリプトが実行するonlyがXごとに何かを実行する場合、代わりにノードスクリプトにXを実行させ、適切なオペレーティングシステムスケジューラ。

これをノードでビルドして実行する場合、アプリのライフサイクルを管理し、アプリが実行されていること、クラッシュから回復することなどを確認する必要があります。 nix Philosophy

19

私の質問は、従来のcronジョブのセットアップと比較して、このようなセットアップを実行することには欠点がありますか?

限り //run the codeは、暗号化のようなCPUに依存するものではありません。少なくとも1つのノードプロセスに固執してください。 requestを要求しているので、IOであるHTTPリクエストを作成している可能性があります。つまり、これで問題ありません。

アプリサーバーと個別のcron管理プロセスを処理するよりも、インストール/起動/開始/停止/アップグレード/接続-デバッガーを1つ用意する方が簡単です。価値があるのは、javascriptで保持することでプラットフォーム間での移植が可能になることですが、それはおそらく重要ではありません。

便利な node-cron モジュールもありますが、これは約1億個もの他の選択肢と同様です。

32
Peter Lyons