Парсинг в 5 потоков. Объясните логику работы

  • Автор темы Автор темы fireplayer
  • Дата начала Дата начала

fireplayer

Client
Регистрация
20.10.2015
Сообщения
36
Реакции
1
Баллы
8
Есть проект и через ZennoPoster я пытаюсь запустить его 1500 раз в 5 потоков(версия Standard у меня).
С чем проблема: парсер должен пройтись по всем ссылкам в таблице URL.excel
VWU1eqO.png

Для этого я создаю файлик и переменную start.txt где ставлю начальное значение 0 и после успешного выполнения задачи переменная увеличивается на 1 и сохраняется в файлике. И так по кругу.
Когда я запускаю многопоточность, то три или четыре потока парсят одну и ту же ссылку,т.к. цикл не успел пройти до конца и переменная в файлe start.txt не успела увеличиться.

Как это обойти? Ставил в самом начале проекта увеливать счетчик на 1, но все равно не помогает.
Заранее спасибо
 
Берем первую строку с удалением, парсим что нужно, если спарсили - записываем результат куда хотим, если по какой-то причине не спарсили - дописываем строку в конец файла. В итоге каждый поток берёт отдельную ссылку и всё работает как надо.
 
Самое простое - брать строки с удалением, как вам подсказали выше
 
Тоже задавался этим вопросом.

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

Еще вариант - создать файл - исходник, откуда будут браться ваши строки по новой после опустошения списка
 

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