zoukankan      html  css  js  c++  java
  • [GO]实现定时器指定时间执行

    正常使用形式如下 , 例如下面的代码,按照5秒频率进行执行

    func cleanVisitorExpire() {
        go func() {
            log.Println("cleanVisitorExpire start...")
            for {
                //执行代码
                t := time.NewTimer(time.Second * 5)
                <-t.C
            }
        }()
    }

    现在想要每天晚上12点执行 , 例如下面代码 , 动态计算间隔的时间 , 每天晚上12点执行

    func cleanLimitQueue() {
        go func() {
            for {
                log.Println("cleanLimitQueue start...")
                //执行功能
                now := time.Now()
                // 计算下一个零点
                next := now.Add(time.Hour * 24)
                next = time.Date(next.Year(), next.Month(), next.Day(), 0, 0, 0, 0, next.Location())
                t := time.NewTimer(next.Sub(now))
                <-t.C
            }
        }()
    }

    开源作品

    GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
    github地址:go-fly
    官网地址:https://gofly.sopans.com

    赞赏作者

    微信交流

  • 相关阅读:
    133
    132
    131
    130
    129
    128
    2019.10.16考试解题报告
    2019.10.15考试解题报告
    洛谷 P1352 没有上司的舞会
    2019.10.13考试解题报告
  • 原文地址:https://www.cnblogs.com/taoshihan/p/14573504.html
Copyright © 2011-2022 走看看