如何清除gocron作业? func main(){ 状态通道:=制造(chan bool) 转到检查频道(状态频道) [...] 如果x==1{ statusChannel

如何清除gocron作业? func main(){ 状态通道:=制造(chan bool) 转到检查频道(状态频道) [...] 如果x==1{ statusChannel,go,Go,我刚刚与gocron有一个类似的问题,我通过删除 func main() { statusChannel := make(chan bool) go checkChannel(statusChannel) [...] if x == 1 { statusChannel <- true } else { statusChannel <- false } func checkChannel(statusChannel chan

我刚刚与gocron有一个类似的问题,我通过删除

func main() {
    statusChannel := make(chan bool)
    go checkChannel(statusChannel)
    [...] 
    if x == 1 {
    statusChannel <- true
    } else {
    statusChannel <- false
}


func checkChannel(statusChannel chan bool) {
defer close(statusChannel)
for {
    log.Printf("waiting for signal...\n")
    shouldContinue := <-statusChannel
    if !shouldContinue {
        log.Print("received false, breaking...\n")
        gocron.Clear()
        break
    }
    gocron.Every(1).Minute().Do(myFunc)
    <-gocron.Start()
    log.Print("working...\n")
    }
}

我刚刚遇到了与gocron类似的问题,我通过删除

func main() {
    statusChannel := make(chan bool)
    go checkChannel(statusChannel)
    [...] 
    if x == 1 {
    statusChannel <- true
    } else {
    statusChannel <- false
}


func checkChannel(statusChannel chan bool) {
defer close(statusChannel)
for {
    log.Printf("waiting for signal...\n")
    shouldContinue := <-statusChannel
    if !shouldContinue {
        log.Print("received false, breaking...\n")
        gocron.Clear()
        break
    }
    gocron.Every(1).Minute().Do(myFunc)
    <-gocron.Start()
    log.Print("working...\n")
    }
}

否的可能重复,不是真的。我的问题是goroutine停止了,但当我稍后启动gocron作业时,goroutine每分钟运行两次。No的可能重复,不是真的。我的问题是goroutine停止了,但当我稍后启动gocron作业时,goroutine每分钟运行两次。
for {
    log.Printf("waiting for signal...\n")
    shouldContinue := <-statusChannel
    if !shouldContinue {
        log.Print("received false, breaking...\n")
        gocron.Clear()
        break
    }
    gocron.Every(1).Minute().Do(myFunc)
    log.Print("working...\n")
    }
    <-gocron.Start()
}