Как правильно парсить контент многопоточно

toxass

Client
Регистрация
18.03.2010
Сообщения
280
Благодарностей
12
Баллы
18
До недавнего времени парсил в CSV файл GET запросами максимум в 50 потоков.

Сейчас попробовал парсить в 300 потоков и результат меня совсем не радует, все происходит довольно медленно.

После внезапного аварийного отключения электричества ПК мои CSV с контентом, напарсеным за 3 дня, удачно затерлись (внутри файла пусто, но размер файла сохранился) и теперь я окончательно решил перейти на иное решение.

Посоветуйте плз, что можно предпринять. Если сделаете примеры, буду слать вам позитивные мантры при каждом парсинге ;-).
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Этот файл внутри шаблона прикреплен к таблице? Или нет, и в него ведется просто построчная запись? Если второй случай, то проблем быть не должно, но при аварийном отключении электричества любой файл обычно “убивается”, если в него велась запись в этот момент. Добавьте в маску создания имени файла приставку с датой, чтобы каждые сутки или каждый час новое имя генерировалось, вот и не попадете в подобную ситуацию. Точнее в случае сбоя пожертвуете только последним файлом. А потом через сторонние утилиты объедините все файлы в 1.
 
  • Спасибо
Реакции: Sergodjan и toxass

toxass

Client
Регистрация
18.03.2010
Сообщения
280
Благодарностей
12
Баллы
18
Этот файл внутри шаблона прикреплен к таблице? Или нет, и в него ведется просто построчная запись? Если второй случай, то проблем быть не должно, но при аварийном отключении электричества любой файл обычно “убивается”, если в него велась запись в этот момент. Добавьте в маску создания имени файла приставку с датой, чтобы каждые сутки или каждый час новое имя генерировалось, вот и не попадете в подобную ситуацию. Точнее в случае сбоя пожертвуете только последним файлом. А потом через сторонние утилиты объедините все файлы в 1.

Сейчас запись построчно в таблицу идет.

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

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Откажитесь от использования крупных таблиц и списков внутри шаблона если хотите писать в их файлы быстро в многопотоке. вангую что вам нужны постоянная проверка на наличие какого-то элемента перед записю (чтобы нед делать дублей), тогда может оптимальнее будет перейти на БД, - больше гемора при начальном изучении, но может реально помочь.
Здесь по кофейной гуще не получится гадать, а шаблон я так понял сложный, в паблик его выставить чтобы люди посмотрели где можно что оптимизировать наверное не захотите, так что хз что еще подсказать.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)