/** * @param WorkerEvent $e * @return void */ public function onJobPop(WorkerEvent $e) { $queue = $e->getQueue(); $options = $e->getOptions(); $job = $queue->pop($options); /** @var AbstractWorker $worker */ $worker = $e->getTarget(); $eventManager = $worker->getEventManager(); $e->setJob($job); // The queue may return null, for instance if a timeout was set if (!$job instanceof JobInterface) { $eventManager->trigger(WorkerEvent::EVENT_PROCESS_IDLE, $e); // make sure the event doesn't propagate or it will still process $e->stopPropagation(); return; } $eventManager->trigger(WorkerEvent::EVENT_PROCESS_JOB, $e); }
/** * Callback facilitating the worker loop * * @param WorkerEvent $e */ public function callbackProcessQueueSetOptionsOnWorkerEvent(WorkerEvent $e) { $e->exitWorkerLoop(); $this->eventOptions = $e->getOptions(); }