使功能每2秒运行一次

时间:2015-04-13 20:23:23

标签: javascript node.js

我有一台使用以下代码运行的服务器。我希望每两秒调用一次函数callAPI,在凌晨2点到5点18分之间赦免小时。 API报告我每天进行超过37,260次API调用(0.5次呼叫/秒* 60秒/分钟* 60分钟/小时*(24-3.3)小时)。为什么这会使每天运行函数callAPI的频率超过37,260次呢?

function callAPI(callback) {
  // Do API call
  callback()
}

function timer() {
  var d = new Date();
  var hour = d.getHours();
  if (hour == 2) {
    setTimeout(function() {
      callAPI(timer);
    }, 1000 * 60 * 60 * 3.3); // Set timeout to 3.3 hours (resumes at 5:18)
  } else {
    setTimeout(function() {
      callAPI(timer);
    }, 2000); // 2 seconds
  }
}

callAPI(timer)

1 个答案:

答案 0 :(得分:1)

getHours函数返回0到23之间的数字。

因此,您每天可能会在if语句中向第二个分支拨打12 * 60 * 30个额外的电话。

相关问题