package common import ( "time" ) func Schedule(seconds time.Duration, task func()) (stop func()) { ticker := time.NewTicker(seconds) quit := make(chan struct{}) go func() { for { select { case <-ticker.C: task() case <-quit: ticker.Stop() return } } }() return func() { close(quit) } }