vue 定时任务执行

/**

 *

 * 前端定时任务触发

 *

 */

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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值