/** * @param string $queueName * @param null $timeout * @return mixed|null */ public function get($queueName, $timeout = null) { $result = $this->predis->brpop($queueName, $timeout); if (empty($result)) { return null; } else { return unserialize($result[1]); } }
/** * @param string $queueName * @param null $timeout * @return mixed|null */ public function get($queueName, $timeout = null) { /** @noinspection PhpUndefinedMethodInspection */ $result = $this->predis->brpop($queueName, $timeout); if (empty($result)) { return null; } else { return unserialize($result[1]); } }
/** * Wait for a message in the queue and return the message for processing * (without safety queue) * * @param int $timeout * @return \Flowpack\JobQueue\Common\Queue\Message The received message or NULL if a timeout occured */ public function waitAndTake($timeout = NULL) { if ($timeout === NULL) { $timeout = $this->defaultTimeout; } $keyAndValue = $this->client->brpop("queue:{$this->name}:messages", $timeout); $value = $keyAndValue[1]; if (is_string($value)) { $message = $this->decodeMessage($value); if ($message->getIdentifier() !== NULL) { $this->client->srem("queue:{$this->name}:ids", $message->getIdentifier()); } // The message is marked as done $message->setState(\Flowpack\JobQueue\Common\Queue\Message::STATE_DONE); return $message; } else { return NULL; } }
public function brpop($channel, $timeout) { return $this->client->brpop($channel, $timeout); }