def METHOD_NAME(self, hostname: str = ""):
    """Limit number of entry per hostname.
    Args:
        url: A fully qualified url.
    Returns:
        A semaphore object to wait.
    Example:
        with self.domain_gate(url):
            self.scraper.get(url)
    """
    if hostname not in _host_semaphores:
        _host_semaphores[hostname] = Semaphore(MAX_REQUESTS_PER_DOMAIN)
    return _host_semaphores[hostname]