Я использую интеллектуальный анализ данных с использованием Beautiful Soup. Первая страница - Scoutmob's map, где я захватываю каждый город, открываю страницу и захватываю URL-адрес каждой сделки в этом городе.Python, создающий рабочие очереди
В настоящее время я не использую нити, и все обрабатывается последовательно. Для всех 500 сделок (из всех городов) моя программа в настоящее время занимает около 400 секунд.
Для практики я хотел изменить свой код, чтобы использовать потоки. Я прочитал некоторые tutorials and examples о том, как создавать очереди в Python, но я не хочу создавать 500 потоков для обработки 500 URL-адресов.
Вместо этого я хочу создать около 20 (рабочих) потоков для обработки всех URL-адресов. Может ли кто-нибудь показать мне пример того, как 20 потоков могут обрабатывать 500 URL-адресов в очереди?
Я хочу, чтобы каждый работник получал необработанный URL-адрес из очереди, а мои данные, после их завершения, работали над другим необработанным URL-адресом. Каждый рабочий только выходит, когда в очереди больше URL-адресов.
Кстати, в то время как каждый рабочий - это интеллектуальный анализ данных, он также записывает содержимое в базу данных. Таким образом, в базе данных могут возникать проблемы с потоками, но это еще один вопрос в другой день :-).
Заранее благодарен!
«Я хочу, чтобы каждый работник, чтобы захватить необработанный URL из очереди, и шахта данных, затем один раз закончил,» ответ. Что еще вы хотите знать? Вы спрашиваете, как использовать метод get очереди? –
Я думаю, я не был тем, как потоки будут оставаться «открытыми», пока в очереди не останется больше предметов. Нужно ли сначала полностью заполнять очередь, так что я могу создать как «живое» соединение в очереди, и потоки продолжают работать, пока я не остановлюсь? – hobbes3
Я не могу понять ваш вопрос. Вы предполагаете, что потоки магически прекращаются, когда очередь пуста? Почему они это сделали? –