使用go-cron工作时,同时启动多个服务,同时执行多个cron任务,如何保证cron任务只执行一次?我的cron表达式是[0 2 */1 * *]
bf1o4zei1#
您可以为任务配置SingletonMode,以防止在前一个作业尚未完成时启动新作业:
SingletonMode
s := gocron.NewScheduler(time.UTC) _, _ = s.Every(1).Second().SingletonMode().Do(task)
https://pkg.go.dev/github.com/go-co-op/gocron#Scheduler.SingletonMode或者启用SingletonModeAll以防止在特定作业的前一个示例尚未完成时启动新作业:
SingletonModeAll
s := gocron.NewScheduler(time.UTC) s.SingletonModeAll() _, _ = s.Every(1).Second().Do(task)
https://pkg.go.dev/github.com/go-co-op/gocron#Scheduler.SingletonModeAll
1条答案
按热度按时间bf1o4zei1#
您可以为任务配置
SingletonMode
,以防止在前一个作业尚未完成时启动新作业:https://pkg.go.dev/github.com/go-co-op/gocron#Scheduler.SingletonMode
或者启用
SingletonModeAll
以防止在特定作业的前一个示例尚未完成时启动新作业:https://pkg.go.dev/github.com/go-co-op/gocron#Scheduler.SingletonModeAll