code: def put_job(self, data, pri=65536, delay=0, ttr=120):
          
          with self._sock_ctx() as socket:
              message = 'put {pri} {delay} {ttr} {datalen}\r\n'.format(
                  pri=pri, delay=delay, ttr=ttr, datalen=len(data), data=data
              ).encode('utf-8')
              if not isinstance(data, bytes):
                  data = data.encode('utf-8')
              message += data
              message += b'\r\n'
              self._send_message(message, socket)
              return self._receive_id(socket)
docs: Insert a new job into whatever queue is currently USEd
  
          :param data: Job body
          :type data: Text (either str which will be encoded as utf-8, or bytes which are already utf-8
          :param pri: Priority for the job
          :type pri: int
          :param delay: Delay in seconds before the job should be placed on the ready queue
          :type delay: int
          :param ttr: Time to reserve (how long a worker may work on this job before we assume the worker is blocked
              and give the job to another worker
          :type ttr: int
  
          .. seealso::
  
             :func:`put_job_into()`
                Put a job into a specific tube
  
             :func:`using()`
                Insert a job using an external guard