Golang在特定时间执行函数

时间:2016-06-15 12:29:43

标签: go timer triggers cron

我在计算如何在程序中实现类似cron的功能时遇到了一些问题。

我一直在尝试https://godoc.org/github.com/robfig/cron取得了一些成功,但无法完全弄明白。

我的代码当前是这样的:

package main

import (
    "fmt"
    "github.com/robfig/cron"
)

func first() {
    c := cron.New()
    c.AddFunc("@every 5s", func() {fmt.Println("First", 1) })
    c.AddFunc("@every 5s", func() {fmt.Println("First", 2) })
    c.Start()
}

func second() {
    c := cron.New()
    for i := 1; i<=2; i++ {
        c.AddFunc("@every 5s", func() {fmt.Println("Second", i) })
    }
    c.Start()
}

func main() {
    first()
    second()
}

first()函数就像我期望的那样工作。每隔五秒,我会得到两排;一个说“前1”,另一个说“前2”。

然而,第二个()函数是导致我出现问题的原因。 我期待类似的行为,但相反,每隔5秒,我会得到两行“第二个3”。

任何人都能解释我在这里做错了什么?

0 个答案:

没有答案