Помимо операций с датой и временем пакет time также предоставляет поддержку для выполнения кода через определенные промежутки времени или с задержкой. Обычно это проверка состояния приложения, его активности или любая другая периодическая работа, которая может быть имплементирована подобным образом.

Как запускать код с задержкой в Golang?

1. Создайте файл ticker.go со следующим содержимым:

Премиум 👑 канал по Golang

Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎

Подписаться на канал

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК ЧАТ в Telegram


2. Запустите код через go run ticker.go в главном терминале;
3. Подождите несколько секунд, затем нажмите Ctrl + C для отправки SIGINT сигнала;
4. Посмотрите на следующий результат:

Ticker содержит канал C, что отвечает за периодический отсчет. Экземпляр остается с данным интервалом между каждым тиканьем. Интервал определяется через значение time.Duration.

Код, что должен выполняться через промежутки, выполняется в бесконечном цикле в горутине. Чтение из канала Ticker блокирует цикл до тех пор, пока тиканье не будет доставлено.

Обратите внимание, что Ticker останавливается через вызов метода Stop, канал C не закрывается, он просто перестает поставлять тиканье. По этой причине предыдущий код содержит конструкцию select, где канал остановки может доставить сигнал остановки. В таком случае можно добиться элегантного закрытия.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии