コード例 #1
0
ファイル: IronConnector.php プロジェクト: indigophp/queue
 /**
  * {@inheritdoc}
  */
 public function delayed($queue, $delay, Job $job)
 {
     $options = $job->getOptions();
     $options['delay'] = $delay;
     $job->setOptions($options);
     return $this->push($queue, $job);
 }
コード例 #2
0
ファイル: DirectConnector.php プロジェクト: indigophp/queue
 /**
  * {@inheritdoc}
  */
 public function pop($queue, $timeout = 0)
 {
     if ($this->job === null) {
         throw new QueueEmptyException($queue);
     }
     $payload = $this->job->createPayload();
     $this->job = null;
     return new $this->managerClass($queue, $payload, $this);
 }
コード例 #3
0
ファイル: JobTest.php プロジェクト: indigophp/queue
 /**
  * @covers ::createPayload
  */
 public function testClosurePayload()
 {
     $closure = function () {
         return true;
     };
     $job = new Job($closure, ['data'], ['options']);
     $this->assertEquals(['job' => 'Indigo\\Queue\\Job\\ClosureJob', 'closure' => serialize(new SerializableClosure($closure)), 'data' => ['data']], $job->createPayload());
 }
コード例 #4
0
ファイル: RabbitConnector.php プロジェクト: indigophp/queue
 /**
  * {@inheritdoc}
  */
 public function release(ManagerInterface $manager, $delay = 0)
 {
     $payload = $manager->getPayload();
     $payload['attempts'] = isset($payload['attempts']) ? $payload['attempts'] + 1 : 2;
     $this->delete($manager);
     $job = Job::createFromPayload($payload);
     if ($delay > 0) {
         $this->delayed($manager->getQueue(), $delay, $job);
     } else {
         $this->push($manager->getQueue(), $job);
     }
     return true;
 }