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