code: def check_out_item(self, expiration):
          
          conn = redis.StrictRedis(connection_pool=self.pool)
          self._run_expiration(conn)
          expiration += time.time()
          script = conn.register_script("""
          local item = redis.call("zrevrange", KEYS[1], 0, 0)
          if #item == 0 then return nil end
          item = item[1]
          redis.call("zrem", KEYS[1], item)
          redis.call("zadd", KEYS[2], ARGV[1], item)
          redis.call("hset", KEYS[3], "i" .. item, "w" .. ARGV[2])
          redis.call("hset", KEYS[3], "w" .. ARGV[2], "i" .. item)
          return item
          """)
          result = script(keys=[self._key_available(), self._key_expiration(),
                                self._key_workers()],
                          args=[expiration, self._get_worker_id(conn)])
          return result
docs: Get the highest-priority item out of this queue.
  
          Returns the item, or None if no items are available.  The item
          must be either ``return_item()`` or ``renew_item()`` before
          ``expiration`` seconds pass, or it will become available to
          future callers.  The item will be marked as being owned by
          ``worker_id``.