go - Golang Cronjob vs time.Ticker 用例
问题描述
我需要为我的 Web 服务器实现一项服务,该服务会从一些外部 rest-api 刷新访问令牌,因为该令牌有 10 分钟的到期时间。(这不是我的服务器生成的访问令牌,它是我从外部 api 收到的令牌,允许我在有限的时间内使用他们的服务)
为了在 Go 中实现定时函数,我遇到了 cronjobs 和使用 time.Ticker 的函数,但是我没有遇到任何关于使用其中一个的优点/缺点的帖子,并且想要一个可能更好用的帖子对于我的情况。
如果有一条可选路线,我也愿意探索它。
谢谢
解决方案
time.Ticker 包含在 Go 标准库中。没有“cron”库。因此,您可以通过使用 time.Ticker 来减少外部依赖。
Cron 旨在按指定的时间表运行作业。通常这些作业由操作系统在 Go 程序之外运行。这不是你想要的。还有其他工作运行程序,以及称为“cron”的库,它们实际上是工作运行程序,但它们也是第三方库。
goroutine 中的 time.Ticker 非常简单,你可以有一个很好的无限循环,它每隔几分钟获取一个 API 令牌,然后通过通道将它发送到需要的地方。那可能是八行代码。
推荐阅读
- java - 在 Spring 4 中运行请求范围之外的代码时,请求范围 bean 始终可用
- eclipse - Eclipse Che 的前端插件无法启动
- swiftui - 当键盘出现时,表单中的 SwiftUI DatePicker 会消失
- dhall - 在 dhall 中定义复杂类型的列表
- php - Laravel 部署理念
- java - API throwing StackOverflow Error with a @OneToMany Relationship
- ffmpeg - 使用 ffmpeg 从网络摄像头拆分实时视频流
- django - 使用 django static 从 GCP 存储桶获取背景图像
- reactjs - backgroundColor 和 onClick 在基本 React 应用程序中不会生效 React JS
- r - 我在时间序列图中看不到完整的日期标签,只有几个月