golang定時器函數 每隔幾分鍾執行一個函數


延時調用 AfterFunc

go function()
 
 
func function() {
	// TODO 具體邏輯
 
	// 每5分鍾執行一次,遞歸調用自己
	time.AfterFunc(5*time.Minute, function)
}

打點器 Tickers

package main

import "time"
import "fmt"

func main() {

    // 打點器和定時器的機制有點相似:一個通道用來發送數據。
    // 這里我們在這個通道上使用內置的 `range` 來迭代值每隔
    // 500ms 發送一次的值。
    ticker := time.NewTicker(time.Millisecond * 500)
    go func() {
        for t := range ticker.C {
            fmt.Println("Tick at", t)
        }
    }()

    // 打點器可以和定時器一樣被停止。
    // 一旦一個打點停止了,將不能再從它的通道中接收到值。
    // 我們將在運行后 1600ms 停止這個打點器。
    time.Sleep(time.Millisecond * 1600)
    ticker.Stop()
    fmt.Println("Ticker stopped")
}

當我們運行這個程序時,這個打點器會在我們停止它前打點 3 次。

go run tickers.go
Tick at 2012-09-23 11:29:56.487625 -0700 PDT
Tick at 2012-09-23 11:29:56.988063 -0700 PDT
Tick at 2012-09-23 11:29:57.488076 -0700 PDT
Ticker stopped


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM