我有一台使用以下代码运行的服务器。我希望每两秒调用一次函数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)
答案 0 :(得分:1)
getHours函数返回0到23之间的数字。
因此,您每天可能会在if语句中向第二个分支拨打12 * 60 * 30个额外的电话。