xxxxxxxxxx
ticker := time.NewTicker(duration)
q := make(chan struct{})
go func() {
for {
select {
case <-ticker.C:
// do something
case <-q:
ticker.Stop()
return
}
}
}()