diff --git a/internal/executor/cron.go b/internal/executor/cron.go index dec2f78..7807515 100644 --- a/internal/executor/cron.go +++ b/internal/executor/cron.go @@ -50,6 +50,13 @@ func (m *CronManager) SetLogger(logger SchedulerLogger) { m.logger = logger } +// SetScheduler 更新关联的调度器实例 +func (m *CronManager) SetScheduler(scheduler *Scheduler) { + m.mu.Lock() + defer m.mu.Unlock() + m.scheduler = scheduler +} + // Start 启动调度器 func (m *CronManager) Start() { m.cron.Start() diff --git a/internal/services/tasks/executor_service.go b/internal/services/tasks/executor_service.go index 85860aa..6095f29 100644 --- a/internal/services/tasks/executor_service.go +++ b/internal/services/tasks/executor_service.go @@ -566,6 +566,11 @@ func (es *ExecutorService) Reload() { // 从设置中读取新配置 es.initScheduler() + + // 重要:更新计划任务管理器中的调度器引用,确保后续触发的任务进入新队列 + if es.cronManager != nil { + es.cronManager.SetScheduler(es.scheduler) + } } // ExecuteTask executes a task by ID(同步执行,供 API 调用)