Из документов:
NewTicker возвращает новый тикер, содержащий канал, который будет отправлять время с периодом, заданным аргументом продолжительности.Он корректирует интервалы или сбрасывает галочки, чтобы компенсировать медленные приемники.Продолжительность d должна быть больше нуля;если нет, NewTicker будет паниковать.Остановите тикер, чтобы освободить связанные ресурсы.
time.Sleep
просто ожидает указанное время и продолжает выполнение программы.Корректировка не выполняется, если остальная часть кода занимает больше времени.
Тикер учитывает время выполнения предоставленного блока и при необходимости пропускает интервал.
Представьте себе этот сценарий: Выукажите интервал в одну минуту, и выполнение вашего кода займет 10 секунд.
В вашей первой версии ваша программа выполняет ваш код в течение десяти секунд, а затем спит в течение 60 секунд.Практически он вызывается каждые 70 секунд.
Во второй версии ваш код выполняется в течение 10 секунд, затем тикер устанавливает время ожидания на 50 секунд.Ваш код выполняется точно каждую минуту.