Javascript 进行活动安排的有效方法,
Javascript Effective way to do Event Scheduling,
我正在尝试在 discord 中编写一个机器人,用户可以设置提醒,但是,我不确定最有效的方法是什么。
我最初的想法是基于
方法一-设置间隔
var events = [
//difference datetime
]
setInterval(() => check(), 60000); //Everyminutes)
function check(){
events.forEach(event =>{
if (Date.now() >= event.time){/*do somthing */}
})
}
但是,我不确定这是否是最好的方法,所以我决定尝试使用 setTimeout
,像这样。
方法二 - 设置超时
var events = [
//difference datetime
]
bot.on('ready', ()=>{
events.forEach(event=>{
setTimeout( /*do somthing */, event.time)
})
}
只是想知道,方法1更好吗? setInterval 和 setTimeout 是最好的方法还是有任何其他方法或 api/library 可以使它更有效? (或者差异太小)
我肯定更喜欢方法 2。
方法 1 必然是精度(关于执行的确切时间)和浪费的 CPU 周期之间的折衷。使用方法 1 的唯一借口是某些事件的执行会影响其他事件的所需开始时间。
我正在尝试在 discord 中编写一个机器人,用户可以设置提醒,但是,我不确定最有效的方法是什么。
我最初的想法是基于
方法一-设置间隔
var events = [
//difference datetime
]
setInterval(() => check(), 60000); //Everyminutes)
function check(){
events.forEach(event =>{
if (Date.now() >= event.time){/*do somthing */}
})
}
但是,我不确定这是否是最好的方法,所以我决定尝试使用 setTimeout
,像这样。
方法二 - 设置超时
var events = [
//difference datetime
]
bot.on('ready', ()=>{
events.forEach(event=>{
setTimeout( /*do somthing */, event.time)
})
}
只是想知道,方法1更好吗? setInterval 和 setTimeout 是最好的方法还是有任何其他方法或 api/library 可以使它更有效? (或者差异太小)
我肯定更喜欢方法 2。
方法 1 必然是精度(关于执行的确切时间)和浪费的 CPU 周期之间的折衷。使用方法 1 的唯一借口是某些事件的执行会影响其他事件的所需开始时间。