如何执行每个时间段的功能?

时间:2018-04-03 19:01:24

标签: javascript node.js time

我希望每个小时运行一定的功能。有一个解决方案,当它是一个圆形小时运行间隔,但我经常打开和关闭我的脚本,我不想完全在一个圆形小时运行它。 我试过查看一些npm模块,我发现了一个,但我遇到了一些问题。有没有人有解决方案?

2 个答案:

答案 0 :(得分:3)

不需要javascript!如果你使用linux,你有完美的工具!
使用cron:

$ sudo crontab -e

这将打开一个vim编辑器。然后添加:

0 * * * * node /execute/your/script.js

(基本上,它会在零分钟的每小时运行你的代码)

更多信息
cron:https://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/

答案 1 :(得分:1)

  const HOUR = 1000 * 60 * 60;

   function hourly() {
      //....

      setTimeout(hourly, HOUR);
  }

  setTimeout(hourly, HOUR - (new Date % HOUR));

计算服务器启动时的下一个完整小时,然后计算每小时计时器。

我承认由于闰秒可能会导致准确性下降:)