/** * List failed jobs. * * @param string $queueName only list failures for this queue * @cli */ public function failuresCommand($queueName = null) { if ($queueName === null) { $failedJobs = $this->failedJobRepository->findAll(); } else { $failedJobs = $this->failedJobRepository->findByQueueName($queueName); } foreach ($failedJobs as $failedJob) { $this->outputFormatted('Queue "%s" at %s', [$failedJob->getQueueName(), $failedJob->getCrdate()->format('d.m.Y H:i:s')]); } }
/** * @test * @depends waitAndExecuteJobThrowsException */ public function waitAndExecuteJobAttempsThreeTimes() { $attemps = 3; $this->extensionConfiguration->expects($this->any())->method('get')->will($this->returnValue($attemps)); $job = $this->getMock(TestJob::class, array('execute'), array(), '', false); $job->expects($this->any())->method('execute')->will($this->returnValue(false)); $this->jobManager->initializeObject(); $this->jobManager->queue($this->queueName, $job); $this->failedJobRepository->expects($this->once())->method('add'); for ($i = 0; $i < $attemps + 99; ++$i) { try { $queuedJob = $this->jobManager->waitAndExecute($this->queueName); if ($queuedJob === null) { break; } } catch (JobQueueException $exception) { if ($i + 1 < $attemps) { $this->assertEquals(1, $this->testQueue->count(), 'Job is not republished to queue!'); } } } $this->assertEquals($attemps, $i, 'To many attemps!'); $this->assertEquals(0, $this->testQueue->count(), 'Queue not empty!'); }