当前位置: 首页 > news >正文

如何做网站庆祝她生日快乐上海站群优化公司

如何做网站庆祝她生日快乐,上海站群优化公司,wordpress 时间不对,企业信用信息查询公示系统官网原文链接,可获取更多Go语言学习资料 概述 在日常开发中,我们不可避免的需要使用到定时任务用来处理业务逻辑。在Go语言中内置的有两个定时器,Timer和Ticker,合理的使用这两个定时器可以很好的解决定时任务的需求,同时…

原文链接,可获取更多Go语言学习资料

概述

在日常开发中,我们不可避免的需要使用到定时任务用来处理业务逻辑。在Go语言中内置的有两个定时器,TimerTicker,合理的使用这两个定时器可以很好的解决定时任务的需求,同时除了这两个内置的定时器外,还有另外的三方库也可以用来完成定时任务的需求。

Timer

简介

Timer定时器可以在指定时间后执行一次,使用time包中的NewTimer方法传入间隔时间参数即可创建一个Timer定时器,定时器将会在指定的时间后执行一次。
Timer中共有以下方法可调用

// 创建
func NewTimer(d Duration) *Timer
// 重置
func (t *Timer) Reset(d Duration) bool
// 停止
func (t *Timer) Stop() bool

Timer中除了有以上方法之外,还有最重要的就是Timer中包含一个时间类型的通道C,当指定时间间隔到达后,就会将当前时间发送到通道C中,这样我们可以使用select监听通道C即可完成在指定时间后执行任务的需求。

基础用法

我们根据上面的描述,完成了下面的代码:

func main() {// 创建一个Timer定时器timer := time.NewTimer(time.Second * 2)// 延迟关闭定时器defer timer.Stop()fmt.Println("当前时间:", time.Now())select {// 使用select监听通道Ccase nowTime := <-timer.C:fmt.Println("间隔2秒后指定定时任务,当前时间:", nowTime)}
}

在idea中运行代码后会输出以下内容:

当前时间: 2024-06-30 15:12:08.7736065 +0800 CST m=+0.002108801
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:12:10.7797079 +0800 CST m=+2.008210201Process finished with the exit code 0

可以看到,Timer定时器在指定时间后会执行一次任务,然后结束。

Reset使用

在上面的代码中可以看到Timer在指定时间后仅能执行一次任务,但是我们可以使用Reset方法重置定时器,这样的话可以在每次执行任务后重置,用来达到每间隔指定时间都执行一次任务的需求。
将代码略做修改如下:

func main() {// 创建一个Timer定时器timer := time.NewTimer(time.Second * 2)// 延迟关闭定时器defer timer.Stop()fmt.Println("当前时间:", time.Now())for {timer.Reset(time.Second * 2)select {// 使用select监听通道Ccase nowTime := <-timer.C:fmt.Println("间隔2秒后指定定时任务,当前时间:", nowTime)}}
}

在上面代码中可以看到在每次的循环中都重置一次Timer定时器,这样的话就可以实现每隔一段时间都执行一次任务的需求。
最终运行结果如下:

当前时间: 2024-06-30 15:16:01.2907834 +0800 CST m=+0.002052801
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:16:03.3096846 +0800 CST m=+2.020954001
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:16:05.3236498 +0800 CST m=+4.034919201
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:16:07.3318153 +0800 CST m=+6.043084701
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:16:09.3462966 +0800 CST m=+8.057566001
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:16:11.3504773 +0800 CST m=+10.061746701
……

Ticker

简介

Ticker定时器的用法和Timer定时器的用法以及内置的方法都一样,区别在于Ticker不仅仅只执行一次,而是会根据指定的时间间隔不停地执行。

基础用法

代码如下:

func main() {ticker := time.NewTicker(time.Second * 2)defer ticker.Stop()fmt.Println("当前时间:", time.Now())for {select {case nowTime := <-ticker.C:fmt.Println("间隔2秒后指定定时任务,当前时间:", nowTime)}}
}

根据Ticker写出以上代码,代码会每隔2秒执行一次,不需要像Timer中那样每次使用Reset方法来重置定时器,最终运行结果如下:

当前时间: 2024-06-30 15:20:27.4070592 +0800 CST m=+0.002137901
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:20:29.4083801 +0800 CST m=+2.003458801
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:20:31.414517 +0800 CST m=+4.009595701
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:20:33.4191099 +0800 CST m=+6.014188601
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:20:35.4099723 +0800 CST m=+8.005051001
间隔2秒后指定定时任务,当前时间: 2024-06-30 15:20:37.4208446 +0800 CST m=+10.015923301
……

Ticker定时器中同样也有Reset方法,但是就算不调用Reset方法定时器也会一直执行,所以这里的Reset方法可以用来重置定时器的间隔时间。

区别

  • Ticker定时器表示每隔一段时间就执行一次,一般可执行多次。
  • Timer定时器表示在一段时间后执行,默认情况下只执行一次,如果想再次执行的话,每次都需要调用Reset方法,此时效果类似Ticker定时器。同时也可以调用Stop方法取消定时器。
http://www.15wanjia.com/news/43898.html

相关文章:

  • 外贸免费开发网站模板怎样做一个网页
  • 网站建设常用的编程语言seo是什么软件
  • 网站建站公司模板成都新站软件快速排名
  • 做自己的网站的好处cba赛程
  • 聚美优品的网站建设营销型网站建设易网拓
  • 国内net开发的网站建设太原seo排名外包
  • 网站建设的一般流程排序为信息流优化师是干什么的
  • 怎么做直播网站的超管百度识图入口
  • 做网站需要公司广州seo网站
  • 做外贸建网站需要推广吗设计网站
  • 外贸响应式网站建设免费公司网址怎么注册
  • 北京市住房与城乡建设网站seo工作室
  • 杭州做购物网站腾讯会议价格
  • 网站建设属于移动互联网百度推广怎么登陆
  • 河北企业网站设计网址创建
  • 网页设计与制作怎么答辩优化大师使用方法
  • 如何查看网站是否降权上海专业的seo公司
  • 苏州网站建设专业的公司排名点击工具
  • 厦门网站公司中国seo关键词优化工具
  • 自己怎样建立个人网站百度seo指南
  • 筑久建筑工程有限公司seo整站优化方案案例
  • 程序员创业做网站做公众号2345网址导航主页
  • 淘宝网站制作教程seo自动优化软件下载
  • 网站移动页面怎么做国内seo做最好的公司
  • 陕西网站开发公司地址爱站seo
  • 网站效果图怎么做百度贴吧广告投放价格
  • 街头小吃加盟网站建设企业官方网站有哪些
  • 广告牌设计seo关键词是什么
  • 网站建设中...海外市场推广做什么的
  • 网站建设用什么系统好网站推广优化方式