web-dev-qa-db-ja.com

cronジョブを「x」秒ごとに実行できますか

最小値60秒のcronジョブセットアップがあり、プログラムを秒間隔で実行できるようにしたい(つまり、60秒以降に設定したものは何でも)。

たとえば、cronジョブを65秒ごと、63秒ごと、または160秒ごとなどに実行したいとします。

これは可能ですか?または、cronジョブのみが60秒間隔で実行されるように設定されていますか?

はいの場合、これのcronジョブはどのようになりますか?

'x'分ごとに実行するように管理しました:これまでのところ、ユーザーが挿入するデータベース値を使用して、設定した分数ごとにcronジョブを実行しました。これは次のようになります。

  cron.schedule('*/' + test + ' * * * *', function () {
    console.log('running a task every minute');
  });

スキーマは次のようになります。

var CronSchema = new mongoose.Schema({
  minutes: { type: Number, min: 1 }
})

「x」秒ごとにcronジョブを実行するにはどうすればよいですか?理想的には、ユーザーが秒単位で値を入力できるようにするだけなので、ジョブを2分ごとに実行したい場合は、 120秒と入力します。

8
deeveeABC

Nodeにミドルウェアを使用している場合は、秒も追加できます

cron.schedule('*/' + test + '0,30 * * * * *', function () {
    console.log('running a task every minute');
});

30秒ごとに、つまりxx:00:000およびxx:30:000

Javascriptバージョンには6つの値があり、ネイティブLinux Cronのように5つではないことに注意してください。つまり、6番目の値は秒単位であり、最初の値になります

*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    |
│    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)
│    │    │    │    └───── month (1 - 12)
│    │    │    └────────── day of month (1 - 31)
│    │    └─────────────── hour (0 - 23)
│    └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)

許可される値に関する完全なドキュメントは crontabのドキュメント にあります

13
adeneo
cron.schedule('*/' + test + '0,x * * * * *', function () {
   console.log('running a task every x seconds');
});

これはx秒ごとに実行されます。

0
anant