【问题标题】:Golang - How to execute function at specific timesGolang - 如何在特定时间执行功能
【发布时间】:2015-11-15 02:46:23
【问题描述】:

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

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

【问题讨论】:

  • 为什么不使用 cron 作业来启动(并在必要时终止)程序?

标签: time go


【解决方案1】:

您真正追求的是调度程序,因此您的选择是:

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

  • 将您的程序变成一个独立的调度程序,它可以按时正确调用所需的函数。理想情况下,您的程序将需要作为守护程序(服务,在 Windows 上)运行,或者启动一次并以某种方式一直运行

【讨论】:

  • 我删除了 tick 函数,现在使用 crontab 命令以特定时间间隔运行编译后的可执行文件。这使程序更简单,并且应该提高可靠性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 2013-11-02
  • 2013-06-18
  • 2011-09-09
相关资源
最近更新 更多