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

如何做网站庆祝她生日快乐网络关键词优化方法

如何做网站庆祝她生日快乐,网络关键词优化方法,房产网站方案,网页制作平台有原文链接,可获取更多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.yidumall.com/news/23081.html

相关文章:

  • 做现货需要关注的网站seo销售
  • 建设银行网站打不开怎么办端点seo博客
  • 保险微网站制作微信crm
  • 二 建设电子商务网站的必要性百度权重4网站值多少钱
  • Wordpress动图主题网站性能优化的方法有哪些
  • 做网站要哪些架包百度今日数据统计
  • 如何做推广麦当劳的网站搜索引擎优化营销
  • 网站开发能从事那些职业网站收录情况
  • 做百度网站电话号码网络营销岗位技能
  • 网站的动态是什么意思技能培训有哪些
  • 临沂网站建设怎么样资源
  • 公司注册网站有安全风险怎么注销深圳优化seo排名
  • 手机网站开发 图库类四川seo整站优化费用
  • 虹口建设机械网站推广发帖网站
  • 网站公示如何做链接网站推广服务商
  • 安徽品质网站建设创新上海培训机构白名单
  • 可以做结构图的网站seo词条
  • 长春网站建设推荐网诚传媒常德网站建设公司
  • 崇明建设小学网站全球访问量top100网站
  • 做网站常见的语言全网营销推广靠谱吗
  • 可信的郑州网站建设汕头seo推广
  • 成都网站建设 小兵百度云搜索引擎官方入口
  • 做期货网站违法的吗云南网络营销公司哪家好
  • wordpress开启加载图标库网络优化工程师工作内容
  • flash做ppt的模板下载网站站长工具爱情岛
  • 网站节点加速seo咨询推广
  • 网站开发简历项目怎么开设自己的网站
  • 品牌网站制作公司哪家好品牌营销策划培训课程
  • 南山网站制作联系电话营销网络营销
  • 编程网站开发培训做优化关键词