У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Остановка скрипта при краше одного из потоков!
-
Друзья нужна логика, чтобы при ошибке-краше какого-либо потока, сразу стопорился весь скрипт! Помогите пожалуйста, кто знает. Думаю это как-то очень просто делается, но как именно пока не знаю. Я третий день в Bas, и очень уж не хочется тратить много времени на выяснение-поиски таких мелочей, поэтому задаю здесь этот вопрос!
-
@n1k0la said in Остановка скрипта при краше одного из потоков!:
Друзья нужна логика, чтобы при ошибке-краше какого-либо потока, сразу стопорился весь скрипт! Помогите пожалуйста, кто знает. Думаю это как-то очень просто делается, но как именно пока не знаю. Я третий день в Bas, и очень уж не хочется тратить много времени на выяснение-поиски таких мелочей, поэтому задаю здесь этот вопрос!
Странная идея, но если очень нужно, можете поместить все действия из Main в любую функцию, в Main же вызывайте эту функцию и сам вызов оборачивайте в игнор ошибок. После вызова поставьте условие и действие "Прервать Скрипт" с включенной опцией "Завершить скрипт мгновенно"
Тестовый скрипт: 2591.xml
-
@Fox said in Остановка скрипта при краше одного из потоков!:
Прервать Скрипт
Здравствуйте! Скажите пожалуйста, а можно ли как-то подравнивать потоки? Т.е. потоки завершаются в разное время, соответственно и стартовать будут в разное, а необходимо, чтобы запускались одновременно!
-
@n1k0la said in Остановка скрипта при краше одного из потоков!:
@Fox said in Остановка скрипта при краше одного из потоков!:
Прервать Скрипт
Здравствуйте! Скажите пожалуйста, а можно ли как-то подравнивать потоки? Т.е. потоки завершаются в разное время, соответственно и стартовать будут в разное, а необходимо, чтобы запускались одновременно!
Используйте действие "Вызов функции в несколько потоков"
-
@Fox said in Остановка скрипта при краше одного из потоков!:
@n1k0la said in Остановка скрипта при краше одного из потоков!:
@Fox said in Остановка скрипта при краше одного из потоков!:
Прервать Скрипт
Здравствуйте! Скажите пожалуйста, а можно ли как-то подравнивать потоки? Т.е. потоки завершаются в разное время, соответственно и стартовать будут в разное, а необходимо, чтобы запускались одновременно!
Используйте действие "Вызов функции в несколько потоков"
Здравствуйте!Подскажите пожалуйста, а как именно решить мою задачу при помощи "Вызов функции в несколько потоков"? у меня есть скрипт работает в 10 потоков, потоки в скрипте заканчиваются в разное время, мне нужно чтобы они всегда начинались в одно и тоже время. Я создал новую функцию"post", в нее скопировал из main свой скрипт, в "main" ее удалил, и добавил в "main" только один блок "Вызов функции в несколько потоков", в которой указал 10 потоков, в самой "main" установил 1 поток. У меня запустился скрипт, потоки сьехали в нумерации на один, т..е начали отображатся со второго браузера, а не с первого, я зашел в функцию "post" и тоже все там поправил сдвинув нумерацию потоков в скрипте на один, т.к. подумал что теперь первым потоком стал называться "main". Все запустилось, но по отработке первого потока он сразу идет на повторный запуск не дожидаясь остальных потоков. Я понимаю что делаю не верно, подскажите пожалуйста мне правильное решение.
-
@n1k0la said in Остановка скрипта при краше одного из потоков!:
@Fox said in Остановка скрипта при краше одного из потоков!:
@n1k0la said in Остановка скрипта при краше одного из потоков!:
@Fox said in Остановка скрипта при краше одного из потоков!:
Прервать Скрипт
Здравствуйте! Скажите пожалуйста, а можно ли как-то подравнивать потоки? Т.е. потоки завершаются в разное время, соответственно и стартовать будут в разное, а необходимо, чтобы запускались одновременно!
Используйте действие "Вызов функции в несколько потоков"
Здравствуйте!Подскажите пожалуйста, а как именно решить мою задачу при помощи "Вызов функции в несколько потоков"? у меня есть скрипт работает в 10 потоков, потоки в скрипте заканчиваются в разное время, мне нужно чтобы они всегда начинались в одно и тоже время. Я создал новую функцию"post", в нее скопировал из main свой скрипт, в "main" добавил блок "Вызов функции в несколько потоков", в которой указал 10 потоков, в самой "main" установил 1 поток. У меня запустился скрипт, потоки сьехали в нумерации на один, т..е начали отображатся со второго браузера, а не с первого, я зашел в функцию "post" и тоже все там поправил сдвинув нумерацию потоков в скрипте на один, т.к. подумал что теперь первым потоком стал называться "main". Все запустилось, но по отработке первого потока он сразу идет на повторный запуск не дожидаясь остальных потоков. Я понимаю что делаю не верно, подскажите пожалуйста мне правильное решение.
Чегось? Количество повторений в действии "Вызов функции в несколько потоков" поставьте 1, а само действие поместите в цикл. Тогда потоки по завершении работы не будут запускаться, а как завершится последний поток - завершится и действие "Вызов функции в несколько потоков", но так как оно в цикле, оно будет снова запущено
-
@Fox said in Остановка скрипта при краше одного из потоков!:
@n1k0la said in Остановка скрипта при краше одного из потоков!:
@Fox said in Остановка скрипта при краше одного из потоков!:
@n1k0la said in Остановка скрипта при краше одного из потоков!:
@Fox said in Остановка скрипта при краше одного из потоков!:
Прервать Скрипт
Здравствуйте! Скажите пожалуйста, а можно ли как-то подравнивать потоки? Т.е. потоки завершаются в разное время, соответственно и стартовать будут в разное, а необходимо, чтобы запускались одновременно!
Используйте действие "Вызов функции в несколько потоков"
Здравствуйте!Подскажите пожалуйста, а как именно решить мою задачу при помощи "Вызов функции в несколько потоков"? у меня есть скрипт работает в 10 потоков, потоки в скрипте заканчиваются в разное время, мне нужно чтобы они всегда начинались в одно и тоже время. Я создал новую функцию"post", в нее скопировал из main свой скрипт, в "main" добавил блок "Вызов функции в несколько потоков", в которой указал 10 потоков, в самой "main" установил 1 поток. У меня запустился скрипт, потоки сьехали в нумерации на один, т..е начали отображатся со второго браузера, а не с первого, я зашел в функцию "post" и тоже все там поправил сдвинув нумерацию потоков в скрипте на один, т.к. подумал что теперь первым потоком стал называться "main". Все запустилось, но по отработке первого потока он сразу идет на повторный запуск не дожидаясь остальных потоков. Я понимаю что делаю не верно, подскажите пожалуйста мне правильное решение.
Чегось? Количество повторений в действии "Вызов функции в несколько потоков" поставьте 1, а само действие поместите в цикл. Тогда потоки по завершении работы не будут запускаться, а как завершится последний поток - завершится и действие "Вызов функции в несколько потоков", но так как оно в цикле, оно будет снова запущено
)))понял, спасибо