Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gocron创建多个任务实例_Go - Fatal编程技术网

gocron创建多个任务实例

gocron创建多个任务实例,go,Go,我在使用此软件包的脚本中遇到问题: "github.com/jasonlvhit/gocron" 在找不到错误后,我编写了这个小测试脚本,结果执行的cronjobs数量是预期的两倍: func main() { for i := 0; i < 3; i++ { channel := make(chan string) go taskCron(channel, i) } time.Sleep(time.Second * 5)

我在使用此软件包的脚本中遇到问题:

    "github.com/jasonlvhit/gocron"
在找不到错误后,我编写了这个小测试脚本,结果执行的cronjobs数量是预期的两倍:

func main() {
    for i := 0; i < 3; i++ {
        channel := make(chan string)
        go taskCron(channel, i)
    }

    time.Sleep(time.Second * 5)
    gocron.Clear()
    fmt.Println("stop this shit")
}

func task(i int) {
    fmt.Println("still running...", i)
}

func taskCron(channel chan string, i int) {
    gocron.Every(4).Seconds().Do(task, i)
    <-gocron.Start()
}
有人知道我如何在不复制gocron作业的情况下创建动态数量的gocron作业吗

谢谢:)

好的

<-gocron.Start()

我也在讨论同一个问题,为可见性发表评论。
<-gocron.Start()
func main() {
    for i := 0; i < 3; i++ {
        taskCron(i)
    }
    channel2 := make(chan int)
    go startCron(channel2)

    time.Sleep(time.Second * 5)
    gocron.Clear()
    fmt.Println("stop this")
}

func task(i int) {
    fmt.Println("still running...", i)
}

func taskCron(i int) {
    gocron.Every(4).Seconds().Do(task, i)
}

func startCron(channel chan int) {
    <-gocron.Start()
}