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());
  }

  // Handle delay
  if (delay != null && delay > Duration.zero) {
    await Future.delayed(delay);
  }

  // Execute immediately
  await executeJob(context);
}