美文网首页gogogoGolang点滴golang
Go中怎么实现定时任务

Go中怎么实现定时任务

作者: 蓝色信仰 | 来源:发表于2015-04-21 18:14 被阅读10391次

    Go有一个package名字叫time,通过这个package可以很容易的实现与时间有关的操作。time package中有一个ticker结构,可以实现定时任务。

    import "time"
    ticker := time.NewTicker(time.Minute * 1)
    go func() {
        for _ = range ticker.C {
            fmt.Printf("ticked at %v", time.Now())
        }
    }()
    

    上面的打印方法会每隔一分钟把当前时间打印出来。修改间隔时间和要执行的函数,就能实现你需要的定时任务。


    原文:How to call a function every N minutes in Go?

    相关文章

      网友评论

      • 803284b34c18:不错不错,收藏了。

        推荐下,分布式作业中间件 Elastic-Job 源码解析 16 篇:http://t.cn/R05mBNd


        12a033ef755a:写的不错,谢谢博主;已收藏~
      • b0cc9207741f:试了一下这段代码,好像没有每隔一分钟就打印出时间
        c3bd53929211:这是周期任务 不是定时任务
        蓝色信仰:这只是个代码片段。直接放到main中执行,主函数会先退出,导致进程先退出了。最简单的改动就是在主函数最后sleep一段时间,来查看效果。
        darkengine:main函数不能结束,否则process结束了所有goroutine都得不到执行:

        func main() {
        ticker := time.NewTicker(time.Second * 2)
        go func() {
        for value := range ticker.C {
        fmt.Println("ticked at %v", time.Now())
        fmt.Println("value =", value)
        }
        }()
        ch := make(chan int)
        value := <- ch
        fmt.Println("value =", value)
        }

      本文标题:Go中怎么实现定时任务

      本文链接:https://www.haomeiwen.com/subject/tijufttx.html