gpt4 book ai didi

go - GOLANG 中的 CRON 作业

转载 作者:IT王子 更新时间:2023-10-29 01:51:15 27 4
gpt4 key购买 nike

我正在使用 CRON PKG https://github.com/jasonlvhit/gocron/blob/master/gocron.go

import (
"fmt"
"time"

"github.com/claudiu/gocron"
)

func task() {
fmt.Println("I am runnning task.", time.Now())
}
func vijay() {
fmt.Println("I am runnning vijay.", time.Now())
}

func main() {
go test()

gocron.Start()
s := gocron.NewScheduler()
gocron.Every(5).Seconds().Do(task)
gocron.Every(10).Seconds().Do(vijay)

<-s.Start()

}
func test() {
time.Sleep(20 * time.Second)
gocron.Clear()
fmt.Println("All task removed")
}

我的问题是删除所有作业后,我的程序仍在执行

我想在删除所有作业后中断执行

请帮帮我,我不知道该怎么做,我也尝试更改 PKG 源代码,但无法找到执行此操作的方法

谢谢大家

最佳答案

首先,您要创建一个新的调度程序并等待它,但使用默认调度程序来运行您的作业。

接下来,您将阻塞 Start() 方法返回的 channel 。关闭该 channel 以取消阻止接收操作。如果您没有立即退出 main,这也会退出 cron 程序中的主循环。

func main() {
ch := gocron.Start()
go test(ch)
gocron.Every(5).Seconds().Do(task)
gocron.Every(10).Seconds().Do(vijay)

<-ch
}
func test(stop chan bool) {
time.Sleep(20 * time.Second)
gocron.Clear()
fmt.Println("All task removed")
close(stop)
}

实际上与

相同
func main() {
gocron.Start()
gocron.Every(5).Seconds().Do(task)
gocron.Every(10).Seconds().Do(vijay)

time.Sleep(20 * time.Second)

gocron.Clear()
fmt.Println("All task removed")
}

如果您要立即退出,那么先调用 Clear() 然后停止调度程序并不重要,您可以简单地退出程序。

关于go - GOLANG 中的 CRON 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453894/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com