/** * Ensure that an existing (previously processed) job can be removed from the event */ public function testEventJobCanBeCleared() { $event = new WorkerEvent($this->worker, $this->queue); $job = new SimpleJob(); $event->setJob($job); $this->assertNotNull($event->getJob()); $event->setJob(null); $this->assertNull($event->getJob()); }
public function setUp() { $jobPluginManager = $this->getMock('SlmQueue\Job\JobPluginManager'); $queue = $this->getMock( 'SlmQueue\Queue\AbstractQueue', array(), array('queueName', $jobPluginManager) ); $strategyPluginManager = $this->getMock('SlmQueue\Strategy\StrategyPluginManager'); $eventManager = $this->getMock('Zend\EventManager\EventManager'); $worker = $this->getMock('SlmQueue\Worker\AbstractWorker', array(), array($eventManager)); $strategyMock = $this->getMock('SlmQueue\Strategy\AbstractStrategy'); $queue->expects($this->any())->method('getName')->will($this->returnValue('queueName')); $worker->expects($this->any())->method('getEventManager')->will($this->returnValue($eventManager)); $strategyPluginManager->expects($this->any())->method('get')->will($this->returnValue($strategyMock)); $event = new WorkerEvent($worker, $queue); $job = new SimpleJob(); $event->setJob($job); $this->listener = new AttachQueueListenersStrategy($strategyPluginManager, array('queueName' => array( 'SlmQueue\Strategy\SomeStrategy', ))); $this->event = $event; }
public function setUp() { $queue = $this->getMockBuilder('SlmQueue\\Queue\\AbstractQueue')->disableOriginalConstructor()->getMock(); $worker = $this->getMock('SlmQueue\\Worker\\WorkerInterface'); $ev = new WorkerEvent($worker, $queue); $job = new SimpleJob(); $ev->setJob($job); $this->listener = new InterruptStrategy(); $this->event = $ev; }
public function setUp() { $queue = $this->getMockBuilder('SlmQueue\\Queue\\AbstractQueue')->disableOriginalConstructor()->getMock(); $worker = new SimpleWorker(); $event = new WorkerEvent($worker, $queue); $this->job = new SimpleJob(); $event->setOptions(['foo' => 'bar']); $event->setJob($this->job); $this->listener = new ProcessQueueStrategy(); $this->event = $event; }
/** * @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); }