У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Удаление строки из файла по условию
-
Искал похожее на форуме, но нужного ответа не нашел, вот у меня например создан ресурс со списком прокси, какие-то прокси не работают. Как мне сделать так, чтобы при ошибке прокси - удалять ее из файла? Вроде бы у меня в логике это прописано, но удаляются все записи почему-то - http://prntscr.com/dsk53r
-
Как мне сделать так, чтобы при ошибке прокси - удалять ее из файла?
Вообще лучше дать БАС завершать поток, если прокси не работает. При таком подходе все происходит автоматом, а так приходится городить кучу кода.
Действие "Удалить Текущий Элемент" удаляет строки из файла мгновенно и не зависимо от галки "Запись" и количества удачных и неудачных использований ресурса. У меня так. Если у вас это не работает, то это баг, приложите пожалуйста минимальный проект. Вот мой.
-
@support В итоге я просто пришел к перебору списка проксей и автоматическому удалению через галочку Запись в ресурсе, проект пока не закончен, застрял на том, что не выдает ошибку при загрузке страницы, просто черный экран и переходит к шагу ввода текста.0_1483858473763_GoogleParse.xml
-
- Почему пропускает ошибку?
Цикл стоит внутри блока игнорирования ошибок, это означает, что при первой ошибке точка выполнения перейдет на первое действие за блоком игнорировать ошибки и цикл завершится. Это описано в вики http://wiki.bablosoft.com/doku.php?id=ru:how_to_catch_errors
"Блок «Игнорировать Ошибки» может содержать несколько блоков, если один из них выполнится с ошибкой, то следующие за ним будут пропущены"
- Фильтрация прокси производится БАС автоматически.

-
@support 1. То есть блок игнорирования ошибки нужно ставить после действия, которое приведет к нему? Но в таком случае сработает ведь Fail и до блока отлавливания ошибки не дойдет.
2. Не понял насчет автоматическую фильтрацию прокси, если этот блок можно заменить просто загрузкой URL, то на каком этапе я подключу прокси?
P.S. Спасибо большое за оперативную поддержку! -
@support Все, я понял смысл при Fail будет браться другой прокси и все заново. А каким образом тогда можно сделать так, чтобы удачные прокси не удалялись из файла, сейчас я в ресурсе поставил галочку Запись, если я поставлю Max Succes Usage больше одного, то другие потоки возьмут эту же прокси, что тоже не есть хорошо, при Max Fail Usage = 1, строка прокси будет удаляться пр и Fail, верно? Как мне добиться того, чтобы остались в файле только рабочие прокси? 0_1483861095426_GoogleParse.xml Вот последние правки
-
@zhevlakov Тогда можно перейти на ручное удаление ресурса.
- Убрать галку запись
- Удалять ресурс в случае ошибки.
