dueRuns method

  1. @override
Future<List<String>> dueRuns(
  1. DateTime now, {
  2. int limit = 256,
})
override

Returns run ids that are due to execute at now.

Implementation

@override
/// Returns run ids that are due to execute at [now].
Future<List<String>> dueRuns(DateTime now, {int limit = 256}) async {
  final ids = <String>[];
  final toRemove = <DateTime>[];
  for (final entry in _due.entries) {
    if (entry.key.isAfter(now)) break;
    for (final runId in entry.value.toList()) {
      ids.add(runId);
      entry.value.remove(runId);
      if (ids.length >= limit) break;
    }
    if (entry.value.isEmpty) {
      toRemove.add(entry.key);
    }
    if (ids.length >= limit) break;
  }
  toRemove.forEach(_due.remove);
  return ids;
}