在 Go 中中午執行程式碼
要在每天中午執行特定函數,您可以利用 Go 的各種時間同步功能。
間隔計時器
最有效的方法是使用間隔計時器。計時器將按照指定的時間間隔(在本例中為每天中午)運行函數。 Go 中有多個計時器選項:
timer.AfterFunc()
此函數安排一個函數在指定的時間間隔後運行。您可以如下使用它:
timer.AfterFunc(duration(), noonTask)
time.Tick()
建立一個按指定時間間隔發送刻度的通道。您可以使用它來連續運行函數:
go func() { for range time.Tick(24 * time.Hour) { noonTask() } }()
time.Sleep()
此函數將目前 goroutine 的執行暫停指定的持續時間。你可以用它等到下一個中午,然後運行該函數:
d := time.Date(t.Year(), t.Month(), t.Day(), 12, 0, 0, 0, t.Location()) time.Sleep(d.Sub(t)) noonTask()
time.Ticker
類似於time.Tick(),這個函數會建立一個定期發送報價的通道。不同之處在於它會自動啟動滾動條,使其更易於使用:
ticker := time.NewTicker(24 * time.Hour) go func() { for range ticker.C { noonTask() } }()
其他提示
以上是如何每天中午準確執行Go函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!