我一直在用时区的 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 * *"
关于go - Cron Job 不会使用 TimeZone 触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56354424/