Time Golang-如何在特定时间执行函数

Time Golang-如何在特定时间执行函数,time,go,Time,Go,我需要在一天中的特定时间运行函数(例如0010、0610、1210、1810)。我目前的方法是使用一个滴答器来表示uz=range time.Tick(21600*time.Second),我在其中一个间隔(例如1210)手动启动程序。这显然是次优的 最好的解决办法是什么?我曾想过每60秒运行一次计时器,然后检查时间是否与其中一个时间间隔匹配,但这似乎不是很优雅。您真正想要的是一个调度程序,因此您可以选择: 将您的程序限制在您希望在每个时间间隔执行的操作范围内,但使用现有的计划程序来执行计划-

我需要在一天中的特定时间运行函数(例如0010、0610、1210、1810)。我目前的方法是使用一个滴答器
来表示uz=range time.Tick(21600*time.Second)
,我在其中一个间隔(例如1210)手动启动程序。这显然是次优的


最好的解决办法是什么?我曾想过每60秒运行一次计时器,然后检查时间是否与其中一个时间间隔匹配,但这似乎不是很优雅。

您真正想要的是一个调度程序,因此您可以选择:

  • 将您的程序限制在您希望在每个时间间隔执行的操作范围内,但使用现有的计划程序来执行计划-一个简单的示例是使用cron作业(或Windows的任务计划程序)根据所需的计划启动您的程序

  • 将您的程序本身转变为一个调度器,它可以按计划正确地调用所需的函数。理想情况下,您的程序需要作为守护进程(Windows上的服务)运行,或者只启动一次,然后一直运行


为什么不使用cron作业来启动(并在必要时终止)程序?我删除了tick函数,现在使用crontab命令以特定的时间间隔运行编译后的可执行文件。这使程序更简单,并应提高可靠性。