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