Я новичок и пытаюсь периодически запускать два метода одновременно, пока приложение работает. Мне удалось придумать следующее, но часть for true
не подходит, потому что она блокирует.
Будут ли каналы лучшим способом сделать это? Любые указатели в правильном направлении были бы полезны.
func main() {
t1 := schedule(ping, time.Second)
t2 := schedule(ping, 2*time.Second)
for true {
time.Sleep(1 * time.Second)
}
t1.Stop()
t2.Stop()
}
func schedule(f func(interval time.Duration), interval time.Duration) *time.Ticker {
ticker := time.NewTicker(interval)
go func() {
for range ticker.C {
f(interval)
}
}()
return ticker
}
func ping(interval time.Duration) {
log.Println("ping ", interval)
}