【问题标题】:How to execute a function for each period of time?如何在每个时间段执行一个函数?
【发布时间】:2018-04-03 19:01:24
【问题描述】:

我希望某个函数每隔一小时运行一次。有一个解决方案是在一个小时内运行一个间隔,但我经常打开和关闭我的脚本,我不想在一个小时内完全运行它。 我试过浏览一些 npm 模块,我找到了一个,但我遇到了一些问题。有人有解决办法吗?

【问题讨论】:

  • 您应该考虑设置一个调度程序并在 AWS 上运行它。在节点中执行此操作的集成非常好。
  • 如果您不想使用 AWS,您可以使用任何安装了 cron 并设置为每小时运行一次节点脚本的 linux 机器 kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab

标签: javascript node.js time


【解决方案1】:

不需要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/

【讨论】:

    【解决方案2】:
      const HOUR = 1000 * 60 * 60;
    
       function hourly() {
          //....
    
          setTimeout(hourly, HOUR);
      }
    
      setTimeout(hourly, HOUR - (new Date % HOUR));
    

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

    我承认它可能会因为闰秒而降低准确性:)

    【讨论】:

    • 我会试试的。谢谢!
    猜你喜欢
    • 2020-10-11
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 2019-04-29
    • 2021-08-07
    • 1970-01-01
    相关资源
    最近更新 更多