/**
*
* 前端定时任务触发
*
*/
let config={
time: '10:00:00', // 每天几点执行
interval: 1, // 隔几天执行一次
runNow: false, // 是否立即执行
intervalTimer: '',
timeOutTimer: ''
}
function getBussTop10DataByTimer() {
if (config.runNow) {
// 如果配置了立刻运行则立刻运行任务函数
initTopTenBusiness()
}
// 获取下次要执行的时间,如果执行时间已经过了今天,就让把执行时间设到明天的按时执行的时间
var nowTime = new Date().getTime()
var timePoint = config.time.split(':').map((i) => parseInt(i))
var recent = new Date().setHours(...timePoint) // 获取执行时间的时间戳
console.log("now",nowTime);
console.log("timepoint",timePoint);
console.log("recent",recent)
if (recent <= nowTime) {
// debugger
recent += 24 * 60 * 60 * 1000
}
// debugger
// 未来程序执行的时间减去现在的时间,就是程序要多少秒之后执行
var doRunTime = recent - nowTime
console.log("doRunTime",doRunTime)
// config.timeOutTimer = setTimeout(setTimer(), doRunTime)
config.timeOutTimer=setTimeout(()=>{
setTimer()
},doRunTime)
}
function setTimer() {
console.log('进入定时器')
//配置后的第一天12点执行
initTopTenBusiness()
// 每隔多少天再执行一次
var intTime = config.interval * 24 * 60 * 60 * 1000
// config.intervalTimer = setInterval(initTopTenBusiness, intTime)
config.intervalTimer=setInterval(()=>{
initTopTenBusiness()
},intTime)
// debugger
// console.log("定时任务已经执行完毕")
}
function initTopTenBusiness(){
console.log("正在执行定时任务.......ing.....")
}
getBussTop10DataByTimer();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)