public function enqueue($queue, $body, array $options = []) {
		if ($this->_usingQueue !== $queue) {
			$this->_usingQueue = $queue;

			if ($this->_scope) {
				$queue = "{$this->_scope}_{$queue}";
			}
			if (!$this->_connection->useTube($queue)) {
				throw new Exception("Could not use queue `{$queue}`.");
			}
		}

		$options += [
			'priority' => 0,
			'delay' => 0,
			'ttr' => 600
		];
		if ($options['priority'] > Client::MAX_PRIORITY) {
			throw new Exception("Priority `{$options['priority']}` exceeds maximum priority.");
		}
		if ($options['priority'] < Client::MIN_PRIORITY) {
			throw new Exception("Priority `{$options['priority']}` is less than minimum priority.");
		}
		$message = "Enqueuing job with body:\n{$body}\nand options:\n" . var_export($options, true);
		$this->_log->debug($message);

		return $this->_connection->put(
			$options['priority'],
			$options['delay'],
			$options['ttr'],
			$body
		);
	}