Golang - 如何在特定时间执行功能

时间:2015-11-15 02:46:24

标签: time go

我需要在一天的特定时间运行一个功能(例如0010,0610,1210,1810)。我当前的方法使用了一个代码for _ = range time.Tick(21600 * time.Second),我在其中一个间隔(例如1210)手动启动程序。这显然是次优的。

最佳解决方案是什么?我想过每60秒运行一次自动收报机,然后检查时间是否与其中一个时间间隔相匹配,但这看起来不太优雅。

1 个答案:

答案 0 :(得分:3)

你真正关注的是调度程序,所以你的选择是:

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

  • 将程序本身转换为调度程序,并按计划正确调用所需的函数。理想情况下,您的程序将需要作为守护程序运行(服务,在Windows上),或者一次启动并始终以某种方式保持运行