Simple
ticker := time.NewTicker(5 * time.Second)
for range ticker.C {
log.Println("Hey!")
}With timeout
ticker := time.NewTicker(5 * time.Second)
defer ticker.Stop()
timeout := time.NewTimer(300 * time.Second)
defer timeout.Stop()
for {
select {
case <-timeout.C:
return errors.New("timeout")
case <-ticker.C:
// do
}
}