Gevent pool с вложенными веб-запросами

Я пытаюсь организовать пул с максимум 10 одновременных загрузок. Функция должна загрузить базовый URL, затем проанализировать все URL на этой странице и загрузить каждый из них, но ОБЩЕЕ число одновременных загрузок не должно превышать 10.

from lxml import etree 
import gevent
from gevent import monkey, pool
import requests

monkey.patch_all()
urls = [
    'http://www.google.com', 
    'http://www.yandex.ru', 
    'http://www.python.org', 
    'http://stackoverflow.com',
    # ... another 100 urls
    ]

LINKS_ON_PAGE=[]
POOL = pool.Pool(10)

def parse_urls(page):
    html = etree.HTML(page)
    if html:
        links = [link for link in html.xpath("//a/@href") if 'http' in link]
    # Download each url that appears in the main URL
    for link in links:
        data = requests.get(link)
        LINKS_ON_PAGE.append('%s: %s bytes: %r' % (link, len(data.content), data.status_code))

def get_base_urls(url):
    # Download the main URL
    data = requests.get(url)
    parse_urls(data.content)

Как я могу организовать его так, чтобы он шел параллельно, но чтобы поддерживать общий глобальный лимит пула для ВСЕХ веб-запросов?

Ответы на вопрос(3)

Ваш ответ на вопрос