|
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 16
|
|||||||||||
WebRequest в паралельном коде, меняющий прокси20.03.2013, 14:24. Показов 2198. Ответов 2
Метки нет (Все метки)
Здравствуйте, у меня такая проблема: Моё консольное приложение парсит онлайн магазин с большим количеством товаров. Структура парсинга такова:
1)Используя Parallel.For я пробегаю по всем каталогам. 2)В каждом каталоге используя Parallel.For я пробегаю по всем подкаталогам и так рекурсией, пока не дойду до каталога нижнего уровня с товарами. 3)Узнаю количество страниц с товарами в данном каталоге и используя Parallel.For пробегаю по всем страницам , заходя на информацию о каждом продукте. В каждом каталоге около 30000 товаров. Проблема в следующем,информация о каталогах сохраняется быстро, но как дело доходит до продуктов, начинаются проблемы. В логе только и вижу Exception of type 'System.OutOfMemoryException' was thrown. Все запросы у меня делаются из одной функции
В результате база поначалу заполняется быстро, потом скорость заполнения резко снижается , вываливается ошибка Exception of type 'System.OutOfMemoryException' was thrown. {Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.} Помогите пожалуйста, что мне сделать ?Без паралельности программа работает, но будет выполняться несколько месяцев.Что я делаю не правильно? Если всё дело в 2 гигабайтах и памяти просто реально не хватает, то как можно по другому оптимизировать весь этот процесс? Если я буду пробегать по каталогам обычным циклом и создавать для каждого каталога свой новый процесс, это может мне помочь, или дело вообше не в этом?
1
|
|||||||||||
| 20.03.2013, 14:24 | |
|
Ответы с готовыми решениями:
2
WebRequest не отправляются куки при использовании прокси WebRequest в паралельном коде, меняющий прокси
|
|
|
|||||||||||
| 20.03.2013, 16:49 | |||||||||||
|
После вызова этой функции, вы куда строки складываете?
В вашей функции два рекурсивных вызова - замените их на нерекурсивные и считайте кол-во попыток доступа для каждого определенным url-ам. возможно у вас попадается url, который всегда выдает ошибку, а вы его бесконечно пытаетесь обработать. После 10-й попытки, может стоит его пропустить?
почему не просто List? Добавлено через 2 минуты Да и запустите программу под профайлером, чтобы узнать что жрет больше всего памяти. Встроенный профайлер есть, например, в VS Ultimate или SharpDevelop
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 16
|
||
| 17.04.2013, 12:25 [ТС] | ||
|
0
|
||
| 17.04.2013, 12:25 | |
|
Помогаю со студенческими работами здесь
3
Как быстро скачивать через прокси с файлообменников или без использования прокси Прокси сервер и прокси порт в android sdk manager Цепочка прокси / Как не спалить IP сервера перед прокси Написание прокси сервера на сокетах. Проброс сообщений основному серверу и возврат значений через прокси При передаче post запроса через прокси сервер в ответ приходят ошибки с прокси сервера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|