У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
функция, которая всегда выполняется при неудачном выполнении скрипта
-
возможно ли определить функцию, которая будет всегда выполняться, когда скрипт не сработал (например, прокси умер). Это было бы полезно для дальнейшего анализа шагов и причин, которые привели к неудаче скрипта.
Я уже определил функцию для этого, делая скриншот, сохраняя все переменные, html, dom и так далее, но это отнимает много времени и раздувает скрипт, чтобы добавить это на всех возможных "плохих концах", прошу ваших рекомендаций и помощи.
Спасибо, друзья. -
Есть идеи, коллеги?
-
Вроде как предлагали весь скрипт обвернуть в исключение ошибки, а при ошибке вызывать функцию.
Но хз на сколько хорош данный метод.
Так то да выход на функцию по дефолту не помешал бы. -
@morpheus93 said in функция, которая всегда выполняется при неудачном выполнении скрипта:
Есть идеи, коллеги?
Поместите все действия в функцию, а вызов функции оберните в игнор ошибок. В случае любой ошибки у вас будет срабатывать условие после блока игнорирования