用golang实现一个定时器任务队列实例-创新互联

 很有幸得到公司信任,采用新的语言进行一些底层服务的开发,在实现功能的同时,也获得了一些感悟,因此在这记录一下,方便自己查看也可以共享给大家。

创新互联专注于企业网络营销推广、网站重做改版、广汉网站定制设计、自适应品牌网站建设、H5开发电子商务商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为广汉等各大城市提供网站开发制作服务。

golang中定时器

golang中提供了2种定时器timer和ticker(如果JS很熟悉的话应该会很了解),分别是一次性定时器和重复任务定时器。

一般用法:

func main() { 
 input := make(chan interface{}) 
 //producer - produce the messages
 go func() {
  for i := 0; i < 5; i++ {
   input <- i
  }
  input <- "hello, world"
 }()
 
 t1 := time.NewTimer(time.Second * 5)
 t2 := time.NewTimer(time.Second * 10)
 
 for {
  select {
  //consumer - consume the messages
  case msg := <-input:
   fmt.Println(msg)
 
  case <-t1.C:
   println("5s timer")
   t1.Reset(time.Second * 5)
 
  case <-t2.C:
   println("10s timer")
   t2.Reset(time.Second * 10)
  }
 }
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:用golang实现一个定时器任务队列实例-创新互联
文章起源:http://ybzwz.com/article/dodpcs.html