VUE定时器任务(每天12点执行)

原文链接:https://blog.csdn.net/ITERCHARLIE/article/details/124447463

设定配置data

data() {
config: {
time: '00:00:00', // 每天几点执行
interval: 1, // 隔几天执行一次
runNow: true, // 是否立即执行
intervalTimer: '',
timeOutTimer: ''
}
}
getBussTop10DataByTimer() {
if (this.config.runNow) {
// 如果配置了立刻运行则立刻运行任务函数
this.initTopTenBusiness()
}
// 获取下次要执行的时间,如果执行时间已经过了今天,就让把执行时间设到明天的按时执行的时间
var nowTime = new Date().getTime()
var timePoint = this.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
this.config.timeOutTimer = setTimeout(this.setTimer, doRunTime)
},
setTimer() {
console.log('进入定时器')
//配置后的第一天12点执行
this.initTopTenBusiness()
// 每隔多少天再执行一次
var intTime = this.config.interval * 24 * 60 * 60 * 1000
this.config.intervalTimer = setInterval(this.initTopTenBusiness, intTime)
}
清除定时器

beforeDestroy() {
console.log(
'关闭任务定时器',
this.config.intervalTimer
)
clearInterval(this.config.intervalTimer)
console.log('清除定时器timeout', this.config.timeOutTimer)
clearTimeout(this.config.timeOutTimer)
}

posted @   枫树湾河桥  阅读(315)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
Live2D
欢迎阅读『VUE定时器任务(每天12点执行)』
西雅图
14:14发布
西雅图
14:14发布
6°
多云
东北风
1级
空气质量
相对湿度
91%
今天
中雨
5°/9°
周三
3°/12°
周四
5°/10°
点击右上角即可分享
微信分享提示