code: def add_item(self, item, priority):
          
          conn = self._conn()
          self._run_expiration(conn)
          script = conn.register_script("""
          if (redis.call("hexists", KEYS[2], ARGV[1]) ~= 0) and
             not(redis.call("zscore", KEYS[1], ARGV[1]))
          then
              return -1
          end
          redis.call("zadd", KEYS[1], ARGV[2], ARGV[1])
          redis.call("hset", KEYS[2], ARGV[1], ARGV[2])
          return 0
          """)
          result = script(keys=[self._key_available(), self._key_priorities()],
                          args=[item, priority])
          if result == -1:
              raise ItemInUseError(item)
          return
docs: Add ``item`` to this queue.
  
          It will have the specified ``priority`` (highest priority runs
          first).  If it is already in the queue, fail if it is checked
          out or reserved, or change its priority to ``priority``
          otherwise.