public function pop(array $queues, $timeout = 10, $blocking = true)
{
$queue = $payload = null;
foreach ($queues as &$queue) {
$queue = self::redisKey($queue);
}
if ($blocking) {
list($queue, $payload) = $this->redis->blpop($queues, $timeout);
$queue = $this->redis->removeNamespace($queue);
} else {
foreach ($queues as $queue) {
if ($payload = $this->redis->lpop($queue)) {
break;
}
}
}
if (!$queue or !$payload) {
return false;
}
$queue = substr($queue, strlen('queue:'));
return Job::loadPayload($queue, $payload);
}