一次允许一个 gocron

我截断了以下代码,该代码安排作业在指定秒数后运行:


import (

    "github.com/jasonlvhit/gocron"

)


// ScheduleCron schedules job running at specified JobInterval

func (cron CronJob) ScheduleCron() {

    gocron.Every(uint64(120)).Second().Do(cron.run)

    <-gocron.Start()

}


func (cron CronJob) run() {

    fmt.Println("Cron Scheduled")

    cron.job.Run()

}


这将每 2 分钟运行一次作业。但是,我希望该作业仅在前一个作业完成时才运行。换句话说,一次只能运行一个作业,并且最好在前一个作业完成后 2 分钟运行下一个计划作业。有没有办法做到这一点?


该库定义了值为 10000 的 MAXJOBNUM const,将其设置为 1 是否正确?


繁花如伊
浏览 120回答 1
1回答

翻过高山走不出你

这是一个有点老的问题。自从我遇到以来,仍然想回答。可以为此目的设置 SingletonMode()。正如评论所说,如果先前的作业尚未完成, SingletonMode 会阻止新作业开始运行
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go