cron
golang每24小时运行一次,但是当我尝试更改系统时间时,它不会调用.
package main; import( "fmt" "strconv" "strings" "gopkg.in/robfig/cron.v2" "time" ) func Envoke_ASSET_INFO() { fmt.Println("Invoking Envoke_ASSET_INFO ", time.Now()) } func main(){ C:=cron.New() min:=strconv.Itoa(int(17)) h:=strconv.Itoa(int(16)) sep:="0"+" "+min+" "+h+" "+"*"+" "+"*"+" "+"*" fmt.Println("SPECIFATION PASSED TO FUNCTION :", sep) C.AddFunc(sep, Envoke_ASSET_INFO ) C.Start() select{} }
当我运行这个程序时,它唤起了我的功能.但是,当我改变我的系统时间(+24小时)以检查下一个唤起它没有发生.
这不是cron的工作方式.更改系统时间时,Cron不会运行过期任务.想想如果它以这种方式工作会发生什么,并且在2天后打开你的机器,工作计划每5分钟运行一次.如果你真的想以这种方式进行测试,你应该将系统时间改为你的工作应该运行之前的时间,并等待它是否存在.
就个人而言,我认为最好将小时和分钟作为参数传递,并检查作业是否在下一分钟运行.