Golang で正午にコードを実行する
Go では、処理中に毎日正午に関数を実行する必要があるシナリオに遭遇することがあります。ユーザーが同時に入力します。これを効果的に実現する方法は次のとおりです。
インターバル タイマーの使用
インターバル タイマー (time.AfterFunc()、time.Tick()、time.Sleep() など) 、および time.Ticker を使用して、特定の間隔で実行する関数をスケジュールすることができます。
次の正午時刻の計算
正午に関数を実行するには、まず計算します現在時刻から次の正午までの時間間隔。 time.Date() 関数を使用して次の正午の時刻を決定し、その時刻から現在の時刻を減算して間隔を取得します。
関数のスケジュール
間隔を確保したら、上記の間隔タイマーのいずれかを使用して関数の実行をスケジュールできます。 time.Sleep() を使用した例を次に示します。
func noonTask() { // Execute your code } func initNoon() { // Calculate the time interval until the next noon t := time.Now() n := time.Date(t.Year(), t.Month(), t.Day(), 12, 0, 0, 0, t.Location()) d := n.Sub(t) // Wait until the next noon if d < 0 { n = n.Add(24 * time.Hour) d = n.Sub(t) } time.Sleep(d) // Schedule the function to run every 24 hours ticker := time.NewTicker(24 * time.Hour) go func() { for _ = range ticker.C { noonTask() } }() } func main() { initNoon() // Perform your usual operations here }
Other Options
追加の考慮事項
以上がGolangで毎日正午に関数を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。