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