Go で毎日正午にコードを実行するには、timer.AfterFunc()、time などのさまざまなメソッドを利用できます。 Tick()、time.Sleep()、または time.Ticker.
初期時間の計算遅延:
以下を使用してプログラムの起動から次の正午までの時間間隔を計算することから始めます:
t := time.Now() n := time.Date(t.Year(), t.Month(), t.Day(), 12, 0, 0, 0, t.Location()) d := n.Sub(t) if d < 0 { n = n.Add(24 * time.Hour) d = n.Sub(t) }
時間を使用します。スリープ:
次を使用して最初の時間間隔を待ちます。 time.Sleep:
time.Sleep(d)
正午タスクのセットアップ:
次に、正午タスクの関数を定義します:
func noonTask() { fmt.Println(time.Now()) fmt.Println("do some job.") }
Start 24ごとにnoonTaskを呼び出す連続ループ時間:
d = 24 * time.Hour for { time.Sleep(d) noonTask() }
timer.AfterFunc の使用:
timer.AfterFunc を使用して、正午の最初のタスクと後続のタスクをスケジュールします:
timer.AfterFunc(duration(), noonTask)
使用中time.Ticker:
time.Ticker を使用して、24 時間ごとに信号を送信するチャネルを作成します:
ticker = time.NewTicker(24 * time.Hour) for { <-ticker.C noonTask() }
代替ライブラリ:
特定の時間にタスクをスケジュールする便利な方法を提供する gocron などの外部ライブラリの利用を検討してください。
理想的なアプローチは、特定の要件とアプリケーション アーキテクチャによって異なることに注意してください。
以上がGo で毎日正午にコードを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。