code: def raise_or_lock(self, key, timeout):
          
          acquired = Lock(
              self.redis,
              key,
              timeout=timeout,
              blocking=self.blocking,
              blocking_timeout=self.blocking_timeout
          ).acquire()
  
          if not acquired:
              # Time remaining in milliseconds
              # https://redis.io/commands/pttl
              ttl = self.redis.pttl(key)
              raise AlreadyQueued(ttl / 1000.)
docs: Checks if the task is locked and raises an exception, else locks
          the task. By default, the tasks and the key expire after 60 minutes.
          (meaning it will not be executed and the lock will clear).