Example #1
0
 /**
  * @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]);
     }
 }
Example #2
0
 /**
  * @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;
     }
 }
Example #4
0
 public function brpop($channel, $timeout)
 {
     return $this->client->brpop($channel, $timeout);
 }