如何在每个季度安排一次api调用



我想在每个季度用户登录后向API发送一些特定于用户的数据。比如每9:15、9:30、9:45等等。。我可以每15分钟使用一次setInterval,但我希望它正好在四分之一秒。

例如-用户在9:25登录,因此我不希望在15分钟(9:40(后点击API,而是希望它在9:30,然后9:45,依此类推。

我怎样才能做到这一点?

您只需每分钟检查分钟%15==0,然后点击您的API

  1. 使用日期计算到下一个15、30、45、60分钟时钟的时间
  2. 使用setTimeout将计时器设置为计算的时间
  3. 使用setInterval开始新的间隔
function onEveryQuarter(callbackFn) {
// function that starts an interval that calls `callbackFn()` every 15 minutes
const startQuarterInterval = () => setInterval(callbackFn, 60*1000*15); // in milliseconds
// get minutes to next :15, :30, :45, :60 time
const now = new Date();
const nextQuarterTime = Math.abs(now.getMinutes() % 15 - 15) * 1000; // *1000 to convert to milliseconds
// start timer
const quarterTimer = setTimeout(startQuarterInterval, nextQuarterTime);
}

然后,

// desired function
const myFunc = () => console.log("hello world");
// to execute `onEveryQuarter` as soon as user visits your site.
window.onload = (e) => onEveryQuarter(myFunc);

位于main.js文件的顶部。

相关内容

最新更新