如何在 javascript 中的特定时间频繁运行 function()



我有一个函数,它使用 setTimeout() 每 3 分钟 24/7 运行一次。问题在于它从每月最多请求的 API 获取数据。我想尽可能多地运行它,但由于浪费请求,当我睡觉时没有必要这样做。此外,如何只能在例如 06:30:00 和 20:00:00 之间运行我的脚本?

你需要 setTimeoutDate() 来实现这一点:例如

var now = new Date();
var millisTill10 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 10, 0, 0, 0) - now;
if (millisTill10 < 0) {
     millisTill10 += 86400000; // it's after 10am, try 10am tomorrow.
}
setTimeout(function(){alert("It's 10am!")}, millisTill10);

有关更多详细信息,请遵循此内容

我已经测试并验证了以下代码。我的是晚上 7:22,它属于这些时间,它执行得很好。

// get todays strict timings
// 06:30:00 and 20:00:00
setInterval(function() {
  lowerDate = new Date();
  lowerDate.setHours(6);
  lowerDate.setMinutes(30);
  lowerDate.setSeconds(0);
  upperDate = new Date();
  upperDate.setHours(20);
  upperDate.setMinutes(0);
  upperDate.setSeconds(0);
  todayDate = new Date();
  if (todayDate > lowerDate && todayDate < upperDate)
    console.log("execute"); // execute only if in between these times
}, 3 * 60 * 1000) //Every 3 minutes

相关内容

  • 没有找到相关文章

最新更新