code: def send_job(self, message, body_params=None):
          
          jobid = self.current_jobid = ((self.current_jobid + 1) % 10000) or 1
          self.remove_all_listeners('job_%d' % jobid)
  
          if message.proto:
              message.header.jobid_source = jobid
          else:
              message.header.sourceJobID = jobid
  
          self.send(message, body_params)
  
          return "job_%d" % jobid
docs: .. versionchanged:: 0.8.4
          Send a message as a job
  
          .. 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
          :return: ``jobid`` event identifier
          :rtype: :class:`str`
  
          To catch the response just listen for the ``jobid`` event.
  
          .. code:: python
  
              jobid = steamclient.send_job(my_message)
  
              resp = steamclient.wait_event(jobid, timeout=15)
              if resp:
                  (message,) = resp