1. ホーム
  2. node.js

[解決済み] 異なる間隔でタスクを実行できるNodejsのスケジューラが欲しい【非公開

2022-05-26 19:10:04

質問

私は、異なる間隔で多くのタスクをスケジュールすることができるノードジョブスケジュールを探しています。例えば

  • 30秒ごとに関数Aを呼び出す
  • 60秒ごとに関数Bを呼び出す
  • 関数Cを7日ごとに呼び出す

また、プロセスの開始と停止ができるようにしたい。

ここまで、見てきました。

  • - この構文は私を混乱させます。また、どうやら一ヶ月を超えるタスクをスケジュールすることはできないようです。

  • 議題 - は最も有望だと思いますが、データベース機能については混乱しています。

  • タイムプラン - シンプルすぎて、開始と停止ができない

後者の構文は分かりにくいですね。

どのように解決するのですか?

私がお勧めするのは node-cron . これによって タスク を実行することができます。

'* * * * * *' - runs every second
'*/5 * * * * *' - runs every 5 seconds
'10,20,30 * * * * *' - run at 10th, 20th and 30th second of every minute
'0 * * * * *' - runs every minute
'0 0 * * * *' - runs every hour (at 0 minutes and 0 seconds)

しかし、さらに 複雑な のスケジュールもあります。

'00 30 11 * * 1-5' - Runs every weekday (Monday through Friday) at 11:30:00 AM. It does not run on Saturday or Sunday.

サンプルコード : 10分ごとにジョブを実行します。

var cron = require('cron');
var cronJob = cron.job("0 */10 * * * *", function(){
    // perform operation e.g. GET request http.get() etc.
    console.info('cron job completed');
}); 
cronJob.start();

他の例は ノードクロン wiki

cronの設定について、詳しくは cron wiki

私は多くのプロジェクトでそのライブラリを使用しており、それは仕事をします。それが助けになることを願っています。