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小时)以检查下一个唤起它时,它没有发生。
答案 0 :(得分:5)
这不是cron的工作原理。当您更改系统时间时,Cron不会运行过期任务。想想如果它以这种方式工作会发生什么,并且在2天后打开你的机器,工作计划每5分钟运行一次。如果你真的想以这种方式进行测试,你应该将系统时间改为工作应该运行之前的时间,并等待它是否存在。
就我个人而言,我认为最好将小时和分钟作为参数传递,并检查作业是否在下一分钟运行。