Ticker в Go — это механизм, который отправляет события через равные промежутки времени. Это часть пакета time, и обычно используется для периодического выполнения каких-либо действий.
Ты создаёшь ticker с помощью функции time.NewTicker(), которая принимает параметр длительности, задающий интервал между событиями:
ticker := time.NewTicker(time.Second)
Этот пример создаёт ticker, который срабатывает каждую секунду.
После создания у ticker'а есть канал, в который на каждом интервале приходят значения time.Time. Обычно это используется в цикле с оператором select для обработки событий ticker'а:
ticker := time.NewTicker(time.Second)
defer ticker.Stop()
for range ticker.C {
// Код выполняется каждую секунду
}
ticker.C) — именно туда отправляются событияticker.Stop() по окончании работы, чтобы не было утечек горутинdefer ticker.Stop(), чтобы гарантировать автоматическую очистку ресурсовВ отличие от time.After(), который срабатывает один раз, ticker продолжает срабатывать бесконечно, пока его явно не остановить — что делает его идеальным для повторяющихся операций.
Ticker в Go продолжает отправлять события неопределённо долго с регулярными интервалами, пока ты явно не остановишь его с помощью ticker.Stop(), в то время как time.After() отправляет одно событие через указанное время.
Новый — ещё не проверен сообществом
Вы