feat: complete Kra admin backend migration
This commit is contained in:
@@ -76,6 +76,35 @@ func (s *TaskScheduler) Remove(id uint) {
|
||||
delete(s.entries, id)
|
||||
}
|
||||
}
|
||||
func (s *TaskScheduler) Reload(ctx context.Context) error {
|
||||
s.mu.Lock()
|
||||
for id, old := range s.entries {
|
||||
if old.seconds {
|
||||
s.seconds.Remove(old.entry)
|
||||
} else {
|
||||
s.standard.Remove(old.entry)
|
||||
}
|
||||
delete(s.entries, id)
|
||||
}
|
||||
s.mu.Unlock()
|
||||
items, _, err := s.service.Tasks(ctx, 1, 100000, nil, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, raw := range items {
|
||||
id, _ := raw["ID"].(uint)
|
||||
task, findErr := s.service.Task(ctx, id)
|
||||
if findErr != nil {
|
||||
return findErr
|
||||
}
|
||||
if task.Enabled {
|
||||
if err = s.Schedule(task); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (s *TaskScheduler) Schedule(task *biz.TimedTask) error {
|
||||
s.Remove(task.ID)
|
||||
if !task.Enabled {
|
||||
|
||||
Reference in New Issue
Block a user