从现在开始,我们要努力学习啦!今天我给大家带来《Cron Job 不会用 TimeZone 触发》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!
问题内容我一直在使用带有时区的 cron 作业进行一些测试。 我的目标是为每个时区设置 1 个 cron 作业,以便它可以独立于服务器位置运行。
package main
import (
"fmt"
"github.com/robfig/cron"
"os"
"os/signal"
"time"
)
func helloWorld() {
fmt.Println("hello world")
}
func main() {
s, err1 := cron.Parse("26 15 * * *")
fmt.Println(err1)
l, err := time.LoadLocation("Asia/Tokyo")
fmt.Println(err)
c := cron.NewWithLocation(l)
c.Schedule(s, cron.FuncJob(helloWorld))
c.Start()
sig := make(chan os.Signal)
signal.Notify(sig, os.Interrupt, os.Kill)
<-sig
}
这里我只是想进行一个测试。我预计在东京时间 15:26 看到 helloworld。 (下午 3:26)
sig 片段是我在堆栈溢出中发现的用于测试目的的内容,以便在 cron 作业有时间运行之前程序不会关闭。
我总是提前 1 或 2 分钟设置时间,但从来没有成功。 知道为什么吗?
解决方案
我的cron公式错误“26 15 * * *”
应该是“00 26 15 * *”
今天关于《Cron Job 不会用 TimeZone 触发》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!