如何清除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...
")
    shouldContinue := <-statusChannel
    if !shouldContinue {
        log.Print("received false, breaking...
")
        gocron.Clear()
        break
    }
    gocron.Every(1).Minute().Do(myFunc)
    <-gocron.Start()
    log.Print("working...
")
    }
}

The running gocron job will break, but if my gocron job starts a second time later, it runs my function two times per minute. Where is my mistake?

I just had a simmilar Issue with gocron and I fixed my problem by removing

<-gocron.Start()

from my for-loop as it will start gocron jobs that were already started again.

you might try changing your for loop to this:

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

if that doesn't fix your problem you can also have a look at my post, maybe it helps you :)

gocron creates multiple instances of task