push method

  1. @override
Future<void> push(
  1. QueueJob job, {
  2. Duration? delay,
})
override

Pushes a QueueJob to the queue with optional delay.

The delay allows deferring the job execution.

Example:

await queueDriver.push(SendEmailJob(), delay: Duration(seconds: 30));

Implementation

@override
Future<void> push(QueueJob job, {Duration? delay}) async {
  final context = createJobContext(job, delay: delay);

  // Track metrics
  if (metrics != null) {
    metrics!.jobQueued(job.runtimeType.toString());
    metrics!.recordQueueDepth(_queue.length + 1);
  }

  _queue.add(context);
}