提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
//配置项
var config={
time:"00:00:00",//每天几点执行
interval:1,//隔几天执行一次
runNow:true//是否立即执行
};
timerTask(config);
//定时任务逻辑
function timerTask(config){
if(config.runNow){
//如果配置了立刻运行则立刻运行任务函数
queryData();
}
//获取下次要执行的时间,如果执行时间已经过了今天,就让把执行时间设到明天的按时执行的时间
var nowTime=new Date().getTime();
var timePoint=config.time.split(":").map(i=>parseInt(i));
var recent =new Date().setHours(...timePoint);//获取执行时间的时间戳
if(recent <= nowTime){
recent += 24*60*60*1000;
}
//未来程序执行的时间减去现在的时间,就是程序要多少秒之后执行
var doRunTime=recent-nowTime;
setTimeout(function(){
queryData();
//没隔多少天在执执行
var intTime=config.interval*24*60*60*1000;
setInterval(function(){
queryData();
},intTime);
},doRunTime);
}
function queryData(){
console.log("定时任务已经执行了");
}
总结
本文仅仅简单介绍了JS定时任务的使用。