zoukankan      html  css  js  c++  java
  • js实现每日定时任务

    1. 原文链接:js定时器每天固定时间执行任务

    首先,定义一个方法,在方法内接收四个参数,一个参数是接收间隔的天数,第二个参数是接收具体某个时间点,第三个参数是决定是否在启动服务时立即执行一次,第四个参数是一个执行的方法,即要定时执行的逻辑。当然,这前三个参数将定义在一个对象中,实际传入一个对象和一个函数作为参数就可以,这样整个对象可以作为配置参数。

    func参数是要执行的方法。

    如果需要多个时间点可以调用多次。

    timeoutFunc (config, func) {
      config.runNow && func()
      const nowTime = new Date().getTime()
      const timePoints = config.time.split(':').map(i => parseInt(i))
      let recent = new Date().setHours(...timePoints)
      recent >= nowTime || (recent += 24 * 3600000)
      setTimeout(() => {
        func()
        setInterval(func, config.interval * 3600000)
      }, recent - nowTime)
    }
    config
    = {//参数的说明 interval: 1, //间隔天数,间隔为整数 runNow: false, //是否立即运行 time: "14:00:00" //执行的时间点 时在0~23之间 }

    2. 原文链接:JS 指定每天固定时间执行

    window.setInterval(function(){
      var refreshHours = new Date().getHours();
      var refreshMin = new Date().getMinutes();
      var refreshSec = new Date().getSeconds();
      if(refreshHours=='0' && refreshMin=='0' && refreshSec=='0'){
        // 指定每天凌晨做的事情
      }
    }, 1000);

    3. 原文链接:JS定时器使用,定时定点,固定时刻,循环执行详解 

    var date = new Date();//现在时刻
    var dateIntegralPoint = new Date();//用户登录时刻的下一个整点,也可以设置成某一个固定时刻
    dateIntegralPoint.setHours(date.getHours()+1);//小时数增加1
    dateIntegralPoint.setMinutes(0);
    dateIntegralPoint.setSeconds(0);
    setTimeout("nextIntegralPointAfterLogin();",dateIntegralPoint-date);//用户登录后的下一个整点执行。
    
    function nextIntegralPointAfterLogin(){
      IntegralPointExecute();//在整点执行的函数,在每个整点都调用该函数
      setInterval("IntegralPointExecute();",60*60*1000);//一个小时执行一次,那么下一个整点,下下一个整点都会执行
    }

    【推荐】:js技巧

  • 相关阅读:
    Android测试工具 UIAutomator入门与介绍
    C#异步编程
    懒得找,存个笔记:easyui combogrid 下拉+关键字搜索
    mssql replace
    序列化类型为XX的对象时检测到循环引用
    shell脚本运行python命令
    python技巧
    边缘检测测评标准
    mybatis 手动生成可执行sql
    Linux如何扩容物理文件系统分区
  • 原文地址:https://www.cnblogs.com/wwqzbl/p/15352194.html
Copyright © 2011-2022 走看看