2015-11-15 2 views
4

Мне нужно запустить функцию в определенное время дня (например, 0010, 0610, 1210, 1810). Мой текущий подход использует тикер for _ = range time.Tick(21600 * time.Second), и я запускаю программу вручную с одного из этих интервалов (например, 1210). Это, очевидно, неоптимально.Golang - Как выполнить функцию в определенное время

Какое оптимальное решение? Я думал о запуске тикера каждые 60 секунд, а затем проверял, соответствует ли время одному из интервалов, но это не кажется очень изящным.

+4

почему бы не использовать хрон для запуска (при необходимости расторгать) программа? – FuzzyTree

ответ

3

Что вы на самом деле после того, как здесь планировщик заданий, так что ваши варианты:

  • Ограничьте программа именно то, что вы хотите сделать в каждом интервале, но использовать существующий планировщик, чтобы сделать планирование - простым примером было бы использование задания cron (или для Windows, планировщика заданий) для запуска вашей программы в соответствии с требуемым расписанием.

  • Превратите свою программу в собственный планировщик, который правильно запускает нужную функцию график. Ваша программа, то в идеале должны были бы работать в качестве демона (службы, на Windows), или будет запущен один раз и оставили работать все время как-то

+1

Я удалил функцию галочки и теперь использую команды crontab для запуска скомпилированного исполняемого файла через определенные промежутки времени. Это делает программу более простой и должна повысить надежность. – surfearth

Смежные вопросы