web-dev-qa-db-ja.com

node.js用のジョブスケジューラライブラリはありますか?

特定の時間に実行する機能をスケジュールできるcronのようなライブラリはありますか(たとえば、今からx時間ではなく15:30など)。この種のライブラリがない場合、これをどのように実装する必要がありますか?コールバックが毎秒呼び出されるように設定し、時間を確認し、その時間にスケジュールされたジョブを開始する必要がありますか?

153
JtR

node-cron は、私が説明したことを行います

120
JtR

node-schedule Node用のcronに似たジョブスケジューラー。

43
Unitech

agenda は、ノードの軽量ジョブスケジューリングです。これはあなたを助けます。

32
Fizer Khan

later.js は、非常に優れたJavaScript「スケジューラ」ライブラリです。 Node.jsまたはWebブラウザーで実行できます。

14

私はkueを使用しています: https://github.com/learnboost/kue 。かなりいいです。

公式の機能と私のコメント:

  1. 遅延ジョブ。
    • 特定の時刻にジョブを実行したい場合は、その時刻から現在までのミリ秒を計算します。 job.delay(milliseconds)を呼び出します(ドキュメントでは分を言っていますが、これは間違っています)。「jobs.promote();」を追加することを忘れないでくださいジョブを初期化するとき。
  2. ジョブイベントと進捗状況pubsub。
    • わかりません。
  3. リッチな統合UI。
    • 非常に便利。統合UIでジョブのステータス(完了、実行中、遅延)を確認でき、コードを記述する必要はありません。また、UIで古いレコードを削除できます。
  4. 無限スクロール
    • 時々動作しません。リフレッシュする必要があります。
  5. UI進行状況表示
    • 時間のかかるジョブに適しています。
  6. ジョブ固有のロギング
    • それらは遅延ジョブであるため、ジョブに有用な情報を記録し、後でUIで確認する必要があります。
  7. redisを搭載
    • 非常に便利。 node.jsアプリを再起動すると、すべてのジョブレコードがまだ存在し、スケジュールされたジョブも実行されます!
  8. オプションの再試行
    • いいね.
  9. 全文検索機能
    • 良い。
  10. RESTful JSON API
    • 良さそうに聞こえますが、私は使用しません。

編集:

  1. kueはcronのようなライブラリではありません。
  2. デフォルトでは、kueは繰り返し実行されるジョブ(毎週日曜日など)をサポートしません。
11
Vince Yuan

node-crontab を使用すると、node.jsからシステムcronジョブを編集できます。このライブラリを使用すると、メインプロセスが終了した後でもプログラムを実行できます。免責事項:私は開発者です。

9
Blago

使用できますtimexe

使いやすく、軽量で、依存関係がなく、cronよりも構文が改善されており、ミリ秒単位の解像度でブラウザーで動作します。

インストール:

npm install timexe

つかいます:

var timexe = require('timexe');
var res = timexe("* * * 15 30", function(){ console.log("It's now 3:30 pm"); });

(私は著者です)

8
Simon Rigét

私は node-runnr のオーホーです。ジョブを作成するための非常にシンプルなアプローチがあります。また、時間と間隔を宣言するのが非常に簡単で明確です。たとえば、10分20秒ごとにジョブを実行するには、

Runnr.addIntervalJob('10:20', function(){...}, 'myjob')

毎日午前10時と午後3時に仕事をするには、

Runnr.addDailyJob(['10:0:0', '15:0:0'], function(){...}, 'myjob')

そのシンプル。詳細: https://github.com/Saquib764/node-runnr

2
codedemon

これらのすべての答えと誰もが最も人気のあるNPMパッケージを指していません.. cron

https://www.npmjs.com/package/cron

1
danday74

node-schedulenode-cron の両方を使用して、cronベースのスケジューラを実装できます。

NOTE:cron式を生成するために、これを使用できます cron_maker

1
dush88c

これはすべての人に適しているわけではありませんが、アプリケーションが既にソケット経由でコマンドを実行するように設定されている場合、netcatを使用してcron経由でコマンドを発行できます。

echo 'mycommand' | nc -U /tmp/myapp.sock
0
Adria