首页 > 解决方案 > Golang Cronjob vs time.Ticker 用例

问题描述

我需要为我的 Web 服务器实现一项服务,该服务会从一些外部 rest-api 刷新访问令牌,因为该令牌有 10 分钟的到期时间。(这不是我的服务器生成的访问令牌,它是我从外部 api 收到的令牌,允许我在有限的时间内使用他们的服务)

为了在 Go 中实现定时函数,我遇到了 cronjobs 和使用 time.Ticker 的函数,但是我没有遇到任何关于使用其中一个的优点/缺点的帖子,并且想要一个可能更好用的帖子对于我的情况。

如果有一条可选路线,我也愿意探索它。

谢谢

标签: gocron

解决方案


time.Ticker 包含在 Go 标准库中。没有“cron”库。因此,您可以通过使用 time.Ticker 来减少外部依赖。

Cron 旨在按指定的时间表运行作业。通常这些作业由操作系统在 Go 程序之外运行。这不是你想要的。还有其他工作运行程序,以及称为“cron”的库,它们实际上是工作运行程序,但它们也是第三方库。

goroutine 中的 time.Ticker 非常简单,你可以有一个很好的无限循环,它每隔几分钟获取一个 API 令牌,然后通过通道将它发送到需要的地方。那可能是八行代码。


推荐阅读