On veut souvent exécuter du code Go à un certain point du futur, ou de manière répétée selon un intervalle de temps. Les fonctionnalités builtin timer et ticker rendent ces deux tâches faciles. Nous allons d’abord regarder les timers, et ensuite les tickers. |
|
package main
|
|
import "time"
import "fmt"
|
|
func main() {
|
|
Les timers représente un événement unique dans le futur. On précise combien de temps on veut attendre, et il founit un canal qui sera notifié à ce moment là. Ce timer attendra 2 secondes. |
timer1 := time.NewTimer(time.Second * 2)
|
Le |
<-timer1.C
fmt.Println("Timer 1 expired")
|
Pour simplement attendre, on peut utiliser
|
timer2 := time.NewTimer(time.Second)
go func() {
<-timer2.C
fmt.Println("Timer 2 expired")
}()
stop2 := timer2.Stop()
if stop2 {
fmt.Println("Timer 2 stopped")
}
}
|
Le premier timer va expirer ~2s après que l’on démarre le programme, mais le second devrait être stoppé avant qu’il ait pu expirer. |
$ go run timers.go
Timer 1 expired
Timer 2 stopped
|
Exemple suivant: Tickers.