Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 11, 2013 08:12:23

Zverushko
Зарегистрирован: 2013-04-22
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Многопоточность urllib

Доброго дня!
Есть задача сохранять разом большое количество урлов (50).
Если использовать urllib.request.urlopen в цикле, то 50 сайтов сохраняются в массив примерно за 25-30 секунд. Если использовать multiprocessing, то за 4 секунды.
Но, джанго с мультипроцессингом не дружит, баг достаточно давно существует, решается манкипатчингом. но это костыль и я его использовать не хочу.

Есть ли какой то еще вариант в котором можно быстро это делать?
Заранее спасибо!

Офлайн

#2 Ноя. 11, 2013 08:54:15

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Многопоточность urllib

Использовать multithreading, запустить сохранение урлов в отдельном потоке, например.



Офлайн

#3 Ноя. 11, 2013 09:26:18

Zverushko
Зарегистрирован: 2013-04-22
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Многопоточность urllib

multiprocessing? он не дружит с джанго, появляется ошибка

Exception AttributeError: AttributeError("'_DummyThread' object has no attribute '_block'",) in <module 'threading' from '/usr/lib/python3.2/threading.py'> ignored
Exception AttributeError: AttributeError("'_DummyThread' object has no attribute '_block'",) in <module 'threading' from '/usr/lib/python3.2/threading.py'> ignored

Офлайн

#4 Ноя. 11, 2013 09:55:52

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Многопоточность urllib

Можно использовать threading а не multiprocessing

Офлайн

#5 Ноя. 11, 2013 10:46:35

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Многопоточность urllib

Zverushko
multiprocessing? он не дружит с джанго, появляется ошибка
http://docs.python.org/2/library/threading.html
http://docs.python.org/dev/library/concurrent.futures.html#threadpoolexecutor



Офлайн

#6 Ноя. 11, 2013 12:31:14

Zverushko
Зарегистрирован: 2013-04-22
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Многопоточность urllib

plusplus
http://docs.python.org/2/library/threading.html
http://docs.python.org/dev/library/concurrent.futures.html#threadpoolexecutor
Спасибо! переписал функцию, все оч просто и понятно, вечером попробую как будет дружить с джанго
Но, сейчас используется threading для потоков, вроде все ровно, так что poolThreading должен нормально работать в теории

Офлайн

#7 Ноя. 11, 2013 22:01:05

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Многопоточность urllib

Зачем оно в джанго проекте? Может сделать отдельным скриптом который стартовать через subprocess? Что хотите сделать?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version