为了账号安全,请及时绑定邮箱和手机立即绑定

golang crontab 每天午夜执行函数

golang crontab 每天午夜执行函数

Go
凤凰求蛊 2023-06-19 11:12:22
我想https://github.com/robfig/cron每天中午 12:05 使用这个 crontab 库执行函数。这是我当前的代码:cronHandler.AddFunc("@midnight", func() { fmt.Println("crontab ping") }我如何每天凌晨 03:00,时区 +2 使用 crontab 执行我的功能?我的问题是当前函数使用我的服务器的时区,第二个问题是这个库不允许在特定的特定时间执行。我该怎么做?
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

这可以通过cron库以及对代码的一些小调整来完成。

一些东西:

  1. 通过在时区数据库的列表中找到您选择的时区

  2. 将此时区加载到time.LoadLocation或使用该time.FixedZone方法

  3. 使用自定义位置方法初始化 Cron 作业运行器的新实例NewWithLocation

  4. 编辑方法的第一个参数.AddFunc,以添加更细化的 cron 计划,将通用替换@midnight为更具体的5 0 * * * *表示每天上午 12:05,或替换为您想要的 cron 执行时间在新的自定义位置

完整示例如下:

// pass in your specific zone name, using USA/LA as example

customLocation := time.LoadLocation("America/Los_Angeles")


// initialize new cron job runner with custom location

cronHandler := cron.NewWithLocation(customLocation)


// the 0/24th hour and 5th minute of every day

cronHandler.AddFunc("5 0 * * * *", func() {

    fmt.Println("crontab ping")

})


查看完整回答
反对 回复 2023-06-19
  • 1 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信