2015-11-06 3 views
0

Я Python обучаемый, и я действительно получаю в этой статье:Распространение веб-сканер в Python

"A Web Crawler With asyncio Coroutines" by A. Jesse Jiryu Davis and Guido van Rossum

Одна вещь, которую я не понимаю, как я бы расти эту программу более кластер из нескольких компьютеров. Является ли это частью асинхронной библиотеки или вы как бы «самостоятельно» для распределенной части?

ответ

2

Одна из возможностей - использовать внешнюю очередь задач. Есть много на выбор, Celery является популярным. Основная идея заключается в том, что вы запускаете задания в очередь, где любое количество рабочих процессов может их использовать. Для веб-искателя работа может быть такой же простой, как URL-адрес для захвата. Рабочие будут захватывать URL-адрес из очереди, извлекать его, анализировать и добавлять новые URL-адреса в очередь в качестве новых заданий.

Преимущество этой системы в том, что работники являются просто процессами и могут связываться с очередью по сети, поэтому вы можете иметь как можно больше рабочих на столько машин, сколько хотите.