Нет необходимости использовать стороннюю библиотеку для достижения этой цели. Просто воспользуйтесь преимуществами goroutine и используйте доступный time.Sleep()
API из пакета time
, тогда вы сможете достичь того же результата.
Пример:
go func() {
for true {
fmt.Println("Hello !!")
time.Sleep(1 * time.Second)
}
}()
Детская площадка: https://play.golang.org/p/IMV_IAt-VQX
Пример использования тикера # 1
Согласно предложению Сиддханты. Вот один пример достижения того же результата с помощью тикера (взят из перейдите на страницу документации тикера , с некоторыми изменениями в соответствии с вашим требованием).
done := make(chan bool)
ticker := time.NewTicker(1 * time.Second)
go func() {
for {
select {
case <-done:
ticker.Stop()
return
case <-ticker.C:
fmt.Println("Hello !!")
}
}
}()
// wait for 10 seconds
time.Sleep(10 *time.Second)
done <- true
Информация о времени тикера (время выполнения Hello !!
) может быть взята с канала ticker.C
.
case t := <-ticker.C:
fmt.Println(t)
Детская площадка: https://play.golang.org/p/TN2M-AMr39L
Пример использования тикера # 2
Еще один упрощенный пример тикера, взятый из https://gobyexample.com/tickers
ticker := time.NewTicker(1 * time.Second)
go func() {
for t := range ticker.C {
_ = t // we don't print the ticker time, so assign this `t` variable to underscore `_` to avoid error
fmt.Println("Hello !!")
}
}()
// wait for 10 seconds
time.Sleep(10 *time.Second)
ticker.Stop()