登录
首页 >  Golang >  Go问答

限制为每次只允许一个 gocron

来源:stackoverflow

时间:2024-02-25 12:09:19 298浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《限制为每次只允许一个 gocron》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

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

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 分钟运行一次作业。但是,我希望该作业仅在前一个作业完成后才运行。换句话说,一次只能运行 1 个作业,并且最好在上一个作业完成后 2 分钟运行下一个计划作业。有什么办法可以做到吗?

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


解决方案


这是一个有点老的问题。自从我遇到以来仍然想回答。 可以为此目的设置 SingletonMode()。正如评论所说,如果先前的作业尚未启动,SingletonMode 会阻止新的作业开始 完成运行

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《限制为每次只允许一个 gocron》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>