Я загружаю некоторую информацию с веб-страниц в виде
http://example.com?p=10
http://example.com?p=20
...
Дело в том, что я не знаю, сколько их. В какой-то момент я получу сообщение об ошибке от сервера, или, может быть, в какой-то момент я захочу остановить обработку, так как мне достаточно. Я хочу запустить их параллельно.
def generator_query(step=10):
i = 0
yield "http://example.com?p=%d" % i
i += step
def task(url):
t = request.get(url).text
if not t: # after the last one
return None
return t
Я могу реализовать его с шаблоном потребителя / производителя с очередями, но мне интересно, что возможно иметь реализацию более высокого уровня, например, с параллельным модулем.
Несовременный пример:
results = []
for url in generator_query():
results.append(task(url))