push method

Future<void> push(
  1. QueueJob job, {
  2. JobPriority priority = JobPriority.normal,
  3. Duration? delay,
})

Push a job with priority

Implementation

Future<void> push(
  QueueJob job, {
  JobPriority priority = JobPriority.normal,
  Duration? delay,
}) async {
  final id = 'job_${DateTime.now().millisecondsSinceEpoch}_${_idCounter++}';

  final prioritizedJob = PrioritizedJob(
    job: job,
    priority: priority,
    id: id,
  );

  if (delay != null && delay > Duration.zero) {
    // Schedule delayed job
    Future.delayed(delay, () {
      _queue.add(prioritizedJob);
      _jobsById[id] = prioritizedJob;
    });
  } else {
    _queue.add(prioritizedJob);
    _jobsById[id] = prioritizedJob;
  }
}