如何在node js中随机运行cron作业?

fhg3lkii  于 2023-02-03  发布在  Node.js
关注(0)|答案(1)|浏览(134)

有许多问题与我的问题相关,但我找不到任何一个是针对节点js的,例如this one,此外,我想知道如何在每个周期的某个时间段内的随机时间运行cron作业,对于我的特定用途,我想在每个小时的某个时间段内的随机时间运行cron作业。例如,10:00-11:00之间的随机时间是10:15,然后11:00-12:00之间的随机时间是11:53,等等。

z31licg0

z31licg01#

function scraper() {
  // do something here
}

// CronJob runs function every hour at minute 0 second 0
const scraperTimer = new CronJob('0 0 */1 * * *', function () {
  // set random delay between 5(min) and 50(max) minutes
  const delay = Math.floor(Math.random() * (3e6 - 300000) +   300000);

  setTimeout(() => {
    scraper();
  }, delay);

  console.log(`running scraper in ${delay / 60000} minutes`);
});

scraperTimer.Start()

使用Cron和计时器时最好注意范围,内存泄漏可能会发生。

相关问题