コード例 #1
0
ファイル: Listener.php プロジェクト: phwoolcon/phwoolcon
 /**
  * Listen to the given queue.
  *
  * @param  string $connectionName
  * @param  string $queue
  * @param  int    $delay
  * @param  int    $sleep
  * @param  int    $maxTries
  * @return array
  */
 public function pop($connectionName, $queue = null, $delay = 0, $sleep = 3, $maxTries = 0)
 {
     $connection = Queue::connection($connectionName);
     if ($job = $connection->pop($queue)) {
         return $this->process($job, $maxTries, $delay);
     }
     // Sleep the worker for the specified number of seconds, if no jobs
     sleep($sleep);
     return ['job' => null, 'failed' => false];
 }
コード例 #2
0
ファイル: QueueTest.php プロジェクト: phwoolcon/phwoolcon
 public function testFailedListener()
 {
     Queue::register($this->di);
     $queue = Queue::connection();
     $workerClass = TestQueueWorker::class;
     $data = ['test' => 'listener'];
     TestQueueWorker::reset();
     $queue->push("{$workerClass}::staticFailureWorker", $data);
     // Failure
     $listener = new Listener();
     $e = null;
     try {
         $listener->pop('', null, 0, 0, 1);
     } catch (Exception $e) {
     }
     $this->assertInstanceOf(Exception::class, $e);
     // Log failure job
     $result = $listener->pop('', null, 0, 0, 1);
     $this->assertTrue(fnGet($result, 'failed'));
 }