/** * {@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); }
/** * {@inheritdoc} */ public function push($queue, Job $job) { return $this->iron->postMessage($queue, json_encode($job->createPayload()), $job->getOptions()); }
/** * {@inheritdoc} */ public function push($queue, Job $job) { $options = $this->options + $job->getOptions(); return $this->pheanstalk->putInTube($queue, json_encode($job->createPayload()), $options['priority'], $options['delay'], $options['timeout']); }
/** * @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()); }
/** * Prepares a message * * @param string $queue * @param Job $job * * @return AMQPMessage * * @codeCoverageIgnore */ protected function prepareMessage($queue, Job $job) { $this->queueDeclare($queue); return new AMQPMessage(json_encode($job->createPayload()), $job->getOptions()); }