step method

Future step()

Implementation

Future step() async {
  int serviceId = config.getRequired<int>('service_id');
  DateTime now = DateTime.now();
  for (var key in allJobs.allClassNames) {
    if (!lastStarts.containsKey(key)) {
      lastStarts[key] = await db.fetchOne<DateTime>('SELECT last_run FROM run_jobs WHERE app_id = ? AND job =?', [serviceId, key]);
    }
    //TODO @Interval annotation
    if ((lastStarts[key] == null) || (now.difference(lastStarts[key]!).inMinutes >= createJob(key, this).minuteInterval)) {
      lastStarts[key] = now;
      await runJob(key);
    }
  }
  await db.disconnect();
}