fix: reload cron not schedule #76
This commit is contained in:
@@ -50,6 +50,13 @@ func (m *CronManager) SetLogger(logger SchedulerLogger) {
|
|||||||
m.logger = logger
|
m.logger = logger
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetScheduler 更新关联的调度器实例
|
||||||
|
func (m *CronManager) SetScheduler(scheduler *Scheduler) {
|
||||||
|
m.mu.Lock()
|
||||||
|
defer m.mu.Unlock()
|
||||||
|
m.scheduler = scheduler
|
||||||
|
}
|
||||||
|
|
||||||
// Start 启动调度器
|
// Start 启动调度器
|
||||||
func (m *CronManager) Start() {
|
func (m *CronManager) Start() {
|
||||||
m.cron.Start()
|
m.cron.Start()
|
||||||
|
|||||||
@@ -566,6 +566,11 @@ func (es *ExecutorService) Reload() {
|
|||||||
|
|
||||||
// 从设置中读取新配置
|
// 从设置中读取新配置
|
||||||
es.initScheduler()
|
es.initScheduler()
|
||||||
|
|
||||||
|
// 重要:更新计划任务管理器中的调度器引用,确保后续触发的任务进入新队列
|
||||||
|
if es.cronManager != nil {
|
||||||
|
es.cronManager.SetScheduler(es.scheduler)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecuteTask executes a task by ID(同步执行,供 API 调用)
|
// ExecuteTask executes a task by ID(同步执行,供 API 调用)
|
||||||
|
|||||||
Reference in New Issue
Block a user