cron golang每24小时运行一次?

时间:2016-01-02 10:53:40

标签: go cron

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小时)以检查下一个唤起它时,它没有发生。

1 个答案:

答案 0 :(得分:5)

这不是cron的工作原理。当您更改系统时间时,Cron不会运行过期任务。想想如果它以这种方式工作会发生什么,并且在2天后打开你的机器,工作计划每5分钟运行一次。如果你真的想以这种方式进行测试,你应该将系统时间改为工作应该运行之前的时间,并等待它是否存在。

就我个人而言,我认为最好将小时和分钟作为参数传递,并检查作业是否在下一分钟运行。