add method

  1. @override
void add(
  1. ScheduledTask task
)
override

Add a new scheduled task

Implementation

@override
void add(ScheduledTask task) {
  if (_tasks.containsKey(task.name)) {
    throw Exception('Task "${task.name}" already exists.');
  }

  _tasks[task.name] = task;
  _logger.info('✅ Task "${task.name}" added to scheduler');

  void scheduleNext(Duration delay) {
    task.timer = Timer(delay, () => task.run(scheduleNext));
  }

  task.start(scheduleNext);
}