dueRuns method
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;
}