public function reserve(array $queues, $timeout) {
		if ($this->_watchingQueues !== $queues) {
			$this->_watchingQueues = $queues;

			foreach ($queues as $queue) {
				if ($this->_scope) {
					$queue = "{$this->_scope}_{$queue}";
				}
				$this->_log->debug("Watching queue `{$queue}`.");
				$this->_connection->watch($queue);
			}
		}
		if (!$result = $this->_connection->reserve($timeout)) {
			return $result;
		}
		$this->_log->debug("Got job `{$result['id']}`.");
		return new Job($this, $this->_log, $result);
	}