start method

Future<void> start({
  1. String? queue,
})

Start processing jobs

Implementation

Future<void> start({String? queue}) async {
  if (_isRunning) return;

  _isRunning = true;
  final workingQueue = queue ?? 'default';

  _jobController = StreamController<Job>.broadcast();
  _worker.start();

  // Process jobs in a loop
  while (_isRunning) {
    final job = await _queue.pop(workingQueue);
    if (job != null) {
      _jobController?.add(job);
      await _worker.process(job);
    } else {
      // No jobs, wait a bit
      await Future.delayed(const Duration(seconds: 1));
    }
  }
}