用于处理重复性任务的警报模式
Alert pattern to handle repetitive tasks
上下文
我实际上正在开发一个应用程序,让人们在一天内完成任务。就像 "wash the window, clean the floor" 等等...等等...
每个任务都有一个周期,需要在这个周期内至少完成一次。
示例:
任务 1 必须每 15 天完成一次。实际上,它已经16天没有完成了。所以应该发出一个事件。
我的客户需要在某些事情还没有完成时得到提醒,在时间事件上,以适当的方式
我知道为此存在 cron 任务,我可以 运行 每天午夜一个,并用它发送邮件警报。但是如果我需要恰好 15 天呢?秒秒?
我真的需要效率,而不是每天 运行 宁这样的脚本。
有没有更好的方法?
在 Javascript 中处理定时事件的最简单方法是通过 setInterval。
您应该记住函数的区间大小参数是一个 32 位整数,它将其大小限制为 2147483647
。
此参数以毫秒为单位给出,因此您的最大间隔约为 24 天 (2147483647 / (1000 [ms in a sec] * 3600 [secs in an hour] * 24 [hours in a day]
)。
您所要做的就是:
setInterval(function(){
doWhateverYouNeedHere();
}, interval);
编辑
您可以通过使用较小的间隔堆叠递归 setTimeout
调用来解决间隔大小参数问题:
setTimeout(function(){
setTimeout(function(){
doWhateverYouNeedHere();
setTimeout(function(){
setTimeout(function(){
doWhateverYouNeedHere();
}, not_so_big_interval);
}, not_so_big_interval);
}, not_so_big_interval); // max 24 days
}, not_so_big_interval); // max 24 days
// In total, your function will run every 48 days.
上下文
我实际上正在开发一个应用程序,让人们在一天内完成任务。就像 "wash the window, clean the floor" 等等...等等...
每个任务都有一个周期,需要在这个周期内至少完成一次。
示例:
任务 1 必须每 15 天完成一次。实际上,它已经16天没有完成了。所以应该发出一个事件。
我的客户需要在某些事情还没有完成时得到提醒,在时间事件上,以适当的方式
我知道为此存在 cron 任务,我可以 运行 每天午夜一个,并用它发送邮件警报。但是如果我需要恰好 15 天呢?秒秒?
我真的需要效率,而不是每天 运行 宁这样的脚本。
有没有更好的方法?
在 Javascript 中处理定时事件的最简单方法是通过 setInterval。
您应该记住函数的区间大小参数是一个 32 位整数,它将其大小限制为 2147483647
。
此参数以毫秒为单位给出,因此您的最大间隔约为 24 天 (2147483647 / (1000 [ms in a sec] * 3600 [secs in an hour] * 24 [hours in a day]
)。
您所要做的就是:
setInterval(function(){
doWhateverYouNeedHere();
}, interval);
编辑
您可以通过使用较小的间隔堆叠递归 setTimeout
调用来解决间隔大小参数问题:
setTimeout(function(){
setTimeout(function(){
doWhateverYouNeedHere();
setTimeout(function(){
setTimeout(function(){
doWhateverYouNeedHere();
}, not_so_big_interval);
}, not_so_big_interval);
}, not_so_big_interval); // max 24 days
}, not_so_big_interval); // max 24 days
// In total, your function will run every 48 days.