我必须自动执行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()
}
我希望我的调度任务功能在后台运行,并执行每个策略,并且在配置新策略时不需要重新启动应用程序。