code: def enqueue(self, message, *, delay=None):
          
          queue_name = message.queue_name
  
          # Each enqueued message must have a unique id in Redis so
          # using the Message's id isn't safe because messages may be
          # retried.
          message = message.copy(options={
              "redis_message_id": str(uuid4()),
          })
  
          if delay is not None:
              queue_name = dq_name(queue_name)
              message_eta = current_millis() + delay
              message = message.copy(
                  queue_name=queue_name,
                  options={
                      "eta": message_eta,
                  },
              )
  
          self.logger.debug("Enqueueing message %r on queue %r.", message.message_id, queue_name)
          self.emit_before("enqueue", message, delay)
          self.do_enqueue(queue_name, message.options["redis_message_id"], message.encode())
          self.emit_after("enqueue", message, delay)
          return message
docs: Enqueue a message.
  
          Parameters:
            message(Message): The message to enqueue.
            delay(int): The minimum amount of time, in milliseconds, to
              delay the message by.  Must be less than 7 days.
  
          Raises:
            ValueError: If ``delay`` is longer than 7 days.