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 中国語 Web サイトの他の関連記事を参照してください。