def crawl_complete(dl_queue, cache_queue, scrape_queue):
    """Crawl is complete when each queue is empty with no pending items
    """
    return dl_queue.empty(
        ) and dl_queue._parent._unfinished_tasks == 0 and cache_queue.empty(
        ) and cache_queue._parent._unfinished_tasks == 0 and scrape_queue.empty(
        ) and scrape_queue._parent._unfinished_tasks == 0
