start method

void start({
  1. required String id,
  2. required Duration interval,
  3. required VoidCallback onTick,
  4. bool restartIfExists = true,
})

启动一个轮询任务

使用示例:

PollingTask().start(
  id: 'task1',
 interval: Duration(seconds: 5),
 onTick: () {
   print('Task 1 is running');
  },
 restartIfExists: true, // 如果任务已存在,是否重启
 );
PollingTask().start(
  id: 'task2',
  interval: Duration(seconds: 10),
  onTick: () {
    print('Task 2 is running');
  },
  restartIfExists: false, // 如果任务已存在,不重启
);

Implementation

void start({
  required String id,
  required Duration interval,
  required VoidCallback onTick,
  bool restartIfExists = true,
}) {
  if (_tasks.containsKey(id)) {
    if (!restartIfExists) return;
    stop(id);
  }

  _tasks[id] = Timer.periodic(interval, (_) {
    onTick();
  });
}