У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Вопрос по перезапуску потоков.
-
Задался таким вопросом, возможно ли, для каждого отдельного потока задать, нужное количество перезапусков, только для него?
Фишка с увеличением потоков внутри потока не подходит.
Мне надо, чтобы например первый поток делал одно, а остальные 10 другое. И у них разное количество перезапусков должно быть. -
было бы неплохо дать возможность пользователю перезапустить поток с кнопки. Ситуация такая вдруг скрипт в одном месте перестает видеть нужный элемент, я пишу обработчик ошибки, всё бы хорошо, но вот не видит он её и цикл работы с ошибкой "повисает" на одном действии. Я стараюсь давать обработчикам лимиты, но честно говоря бывают такие ошибки совсем в непредвиденных местах, внешний ребут или стоп или и то и другое на одном потоке был бы желателен.
Спасибо за вашу работу!