我正在尝试使cron函数每randomInterval
秒运行一次。
每次我运行此命令时,都会显示Maximum call stack size exceeded
-UPDATE:我将setInterval(cron(), randomInterval);
更改为setInterval(cron, randomInterval);
,这消除了最大调用堆栈错误。但这仍然不能作为可靠的cron。在前5次迭代之后,它将在不设置间隔的情况下执行cron函数。
任何帮助将不胜感激!
function cron() {
randomInterval = randomIntFromInterval(1000, 9000);
cronInterval = setInterval(cron, randomInterval);
}
function randomIntFromInterval(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
cron();
下面的代码对测试记录了时间间隔以及cron触发的时间。
function cron() {
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
h = (h < 10) ? "0" + h : h;
m = (m < 10) ? "0" + m : m;
console.log(h + ":" + m + "took screenshot ");
randomInterval = randomIntFromInterval(1000, 9000);
cronInterval = setInterval(cron, randomInterval);
console.log(randomInterval/1000);
}
function randomIntFromInterval(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
cron()