如何在Go中自动安排和触发作业

时间:2019-05-29 05:22:35

标签: mongodb go scheduled-tasks

我必须自动执行db中定义的策略,并且在db中这些策略还配置了计划详细信息,例如何时以及执行该策略的频率。因此,我必须获取每个策略的计划详细信息,并根据计划的详细信息自动执行它。

为此,我使用了“ gocron”程序包,并根据调度详细信息调度了作业,并在init方法中调用了该函数,但是这里出现了一个问题,即如果配置了新策略,则必须重新启动应用程序。

func ScheduleTask(){
    s := gocron.NewScheduler()
    if EvaluationFrequency == "daily" { 
        s.Every(1).Day().At(SchTime).Do(Task,Name)  
        } 
    else if EvaluationFrequency == "weekly"{
        if SchDay == "monday" { 
            s.Every(1).Monday().At(SchTime).Do(Task,Name)       
        }
  s.Start()
}

func init() {
    ScheduleTask()
}

我希望我的调度任务功能在后台运行,并执行每个策略,并且在配置新策略时不需要重新启动应用程序。

0 个答案:

没有答案