在Go 中每隔一段時間執行重複的後台任務
在Java 中,Timer.schedule 方法提供了一種執行週期性後台任務的便捷方法。這就提出了一個問題:Go 中是否有類似的方法?
一個可能的解決方案涉及利用 goroutine 和 time.sleep(),但這可能很笨拙。幸運的是,Go 提供了一個更優雅的解決方案:time.NewTicker。
time.NewTicker 建立了一個連續發送週期性訊息的通道,提供了一種簡單有效的方法來安排重複任務。要使用time.NewTicker:
ticker := time.NewTicker(5 * time.Second) quit := make(chan struct{}) go func() { for { select { case <- ticker.C: // Perform the desired task case <- quit: ticker.Stop() return } } }()
要終止負責執行任務的工作人員,只需關閉退出通道即可:
close(quit)
這種方法提供了一種乾淨、簡單的執行方法Go 中定期重複的後台任務。
以上是如何在 Go 中定期執行重複的後台任務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!