Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[GO]实现定时器指定时间执行

[GO]实现定时器指定时间执行

作者头像
唯一Chat
发布于 2022-02-19 02:15:35
发布于 2022-02-19 02:15:35
1.3K00
代码可运行
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func cleanVisitorExpire() {
    go func() {
        log.Println("cleanVisitorExpire start...")
        for {
            //执行代码
            t := time.NewTimer(time.Second * 5)
            <-t.C
        }
    }()
}

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
        }
    }()
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Golang包——time
毫秒和纳秒是两的时间单位 1秒=1000毫秒 1毫秒=1000微秒 1微秒=1000纳秒
羊羽shine
2019/05/29
1.2K0
time 用法大全
type Duration int64 持续时间表示两个瞬间之间的经过时间,为int64纳秒计数。
酷走天涯
2019/05/26
1.3K0
一文了解 Go time 包的时间常用操作
在日常开发中,我们避免不了时间的使用,我们可能需要获取当前时间,然后格式化保存,也可能需要在时间类型与字符串类型之间相互转换等。本文将会对 Go time 包里面的常用函数和方法进行介绍。
陈明勇
2023/10/15
3890
一文了解 Go time 包的时间常用操作
go time Format 格式化时间的使用
Go 里的定时器相关的函数有 time.After,time.AfterFunc,time.Tick 等
solate
2019/07/19
41K0
Go高阶20,定时器的使用
源码包 src/time/sleep.go:Timer 定义了Timer数据结构:
微客鸟窝
2021/10/08
8430
【Go 基础篇】Go语言日期与时间函数详解:时间的掌控与转化
Go语言是一种快速、简洁且高效的编程语言,它在处理日期与时间方面提供了丰富的标准库函数。本文将详细介绍Go语言中处理日期与时间的函数,涵盖常用的日期时间操作、格式化、时区转换等内容,并介绍time.Time结构体中的相关方法。
繁依Fanyi
2023/10/12
2.4K0
【Go 基础篇】Go语言日期与时间函数详解:时间的掌控与转化
一文搞懂Go语言标准库,Time
在编程过程中,我们经常会用到与时间和日期相关的各种需求,下面来介绍 Go 语言中有关时间的一些基本用法。
微客鸟窝
2021/12/27
6090
Golang内置包-time
时间离我们仅在咫尺,无论是在编程中时间还是日常生活中对于时间的 记述都是离我们最近的,那么让我们一起来学习一下GoLang中内置包time。
PayneWu
2020/12/18
9010
Golang中time包用法--转
time包中包括两类时间:时间点(某一时刻)和时常(某一段时间) 1时间常量(时间格式化) const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:05 MST 2006" RubyDate = "Mon Jan 02 15:04:05 -0700 2006" RFC822 = "02 Jan 06 15:04 MST" RFC822Z = "02
李海彬
2018/03/20
4.3K0
Go之time包用法
time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。 time 类型 type Time struct { // wall and ext encode the wall time seconds, wall time nanoseconds, // and optional monotonic clock reading in nanoseconds. // // From high to low bit position, wall encodes a 1-bit flag (hasMon
孤烟
2022/03/19
4160
Go每日一库之12:carbon(日期和时间)
一线开发人员每天都要使用日期和时间相关的功能,各种定时器,活动时间处理等。标准库time使用起来不太灵活,特别是日期时间的创建和运算。carbon库是一个时间扩展库,基于 PHP 的carbon库编写。提供易于使用的接口。本文就来介绍一下这个库。
luckpunk
2023/09/19
4300
不用循环就能把原生的UTC时间格式转成“几天前”这种格式,这很【羊了个羊】
如何在不循环的情况下,把列表数据的时间修改为咱们习惯的“几秒前,几天前”格式,而不是UTC模式
王中阳Go
2022/10/26
6820
Go组件学习——cron定时器
  反而,前几天在写Java的时候,发现Java怎么启动这么慢,Java怎么能够容忍这些用不到的代码还理直气壮的躺在那……等等,这些话在哪听过类似的???
JackieZheng
2019/07/30
2.2K0
Go组件学习——cron定时器
GO的定时器Timer 和定时任务cron
要是对GO 中 swaggo 的应用还有点兴趣的话,可以查看文章 工作中后端是如何将API提供出去的?swaggo很不错
阿兵云原生
2023/02/16
1.2K0
Golang之旅21-time模块使用
time.Time类型表示时间。我们可以通过time.Now()函数获取当前的时间对象,然后获取时间对象的年、月、日、时、分、秒等信息。
皮大大
2021/03/02
5390
Go 编程 | 连载 32 - 时间与日期
输出的时间中的 CST 表示时区,如果计算机中设置的时区不同,那么输出的所处的时间也不一样,也就是说 Now 获取的时间是来自底层操作系统的时间。
RiemannHypothesis
2022/09/28
3280
Go语言中常见100问题-#76 time.After and memory leak
time.After(time.Duration)的功能是当持续的时间结束后,会将当前的时间发送到返回的通道中。在某个时间到后执行某个动作可以用time.After来实现,它使用起来非常方便,在并发程序中用的比较多。如果我们只是想让程序睡眠一段时间,可以使用time.Sleep(time.Duration). time.After主要用在“如果在5秒内没有从通道收到消息,那么将做..."这样的场景中。然而经常会看到在循环中调用time.After的代码,非常糟糕,这可能会导致内存泄露。
数据小冰
2022/08/15
7710
Go语言计时器的使用详解
Go语言的标准库里提供两种类型的计时器Timer和Ticker。Timer经过指定的duration时间后被触发,往自己的时间channel发送当前时间,此后Timer不再计时。Ticker则是每隔duration时间都会把当前时间点发送给自己的时间channel,利用计时器的时间channel可以实现很多与计时相关的功能。
KevinYan
2020/05/14
2.6K0
go时间/时间戳操作大全
基本操作 01: 获取当前时间 dateTime := time.Now() fmt.Println(dateTime) 02: 获取年 月 日 时 分 秒 纳秒 year := time.Now().Year() //年 fmt.Println(year) month := time.Now().Month() //月 fmt.Println(month) day := time.Now().Day() //日 fmt.Println(day) hour := time.No
李昊天
2019/07/08
2.2K0
Go语言入门(二)-流程控制
go流程控制 字符串详解 字符串原理 字符串底层就是一个byte数组,所以可以和[]byte类型互相转换 字符串中的字符是不能修改的 字符串是有byte字节组成,所以字符串的长度是byte字节的长度 rune类型(int32占四个字节)用来表示utf8字符,一个rune由一个或者多个byte组成 func stringByte() { var str string str = "abc你好" var b []byte = []byte(str) var c[]rune = []run
alexhuiwang
2020/09/24
3100
相关推荐
Golang包——time
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档