code: def send_job_and_wait(self, message, body_params=None, timeout=None, raises=False):
          
          job_id = self.send_job(message, body_params)
          response = self.wait_event(job_id, timeout, raises=raises)
          if response is None:
              return None
          return response[0].body
docs: .. versionchanged:: 0.8.4
          Send a message as a job and wait for the response.
  
          .. note::
              Not all messages are jobs, you'll have to find out which are which
  
          :param message: a message instance
          :type message: :class:`.Msg`, :class:`.MsgProto`
          :param body_params: a dict with params to the body (only :class:`.MsgProto`)
          :type body_params: dict
          :param timeout: (optional) seconds to wait
          :type timeout: :class:`int`
          :param raises: (optional) On timeout if ``False`` return ``None``, else raise ``gevent.Timeout``
          :type raises: :class:`bool`
          :return: response proto message
          :rtype: :class:`.Msg`, :class:`.MsgProto`
          :raises: ``gevent.Timeout``