Доброго времени суток! Вопрос не новый но на форуме толком ничего не нашел. Интересует организация многопоточности через XHE Manager и как правильно организовать ее там.
Запускаю XHE Manager, прописываю путь к самому хюману, и скрипту, ставлю порт на котором стоить хюман- это понятно.Вопросы такие:
1)В поле аргументы что писать?
2)Допустим ставлю 10 потоков.... он эти 10 потоков запускает с одного хюмана просто меняет на нем порты?
3)Как он берет файлы необходимые для работы скрипта(прокси,файлы с аккаунтами и тд..) - то есть он их как то отдельно разделает на части для каждого потока или как то по другому?Как организовать работу с такими файлами что бы каждый поток брал "свои" прокси и другие необходимые данные для работы скриптов
многопоточность через XHE Manager
Re: многопоточность через XHE Manager
Добрый день.
XHEManager. С его помощью запуск скриптов в многопоточном режиме можно значительно упростить. Не смотря на то, что Менеджер позволяет размножать папки с программой специальной опцией из меню «Файл» , есть куда более экономичный и простой способ, который и будет описан ниже.
Начнём с подготовки скрипта. Найдите (или добавьте в начало нужного скрипта, если этой строки в нём нет) переменную $xhe_host ="127.0.0.1:7010"; Чтобы скрипт запускался без проблем, нужно заменить порт в этой строке на переменную $argv[1]. После этого строка станет примерно такой: $xhe_host ="127.0.0.1:".$argv[1]; Если в скрипте планируется использование рестарта ($app->restart), то переменную $argv[1] нужно также поставить вместо аргументов $params и $port. То есть, функция будет выглядеть примерно так: $app->restart($scriptpath="",$argv[1],$argv[1]);
Проведённые нами манипуляции позволят передавать в скрипт все нужные для полноценной работы данные, так что осталось лишь добавить задание через менеджер. В меню «Добавить» необходимо проверить путь к программе, указать путь к скрипту и в строке «Порт» выставить номер порта. Количество нужных потоков можно определить после щелчка по соответствующей галочке.
После всего этого можно стартовать нужные потоки, выделив их через ctrl и нажав кнопку «Запустить». Менеджер поочерёдно откроет заданное количество копий программы и начнёт отрабатывать скрипты.
*Длину паузы между запусками копий программы можно выставить в настройках.
*Кнопка «Остановить все» закрывает все запущенные копии Эмулятора, а не останавливает работающие в них скрипты.
*Узнать подробности о предназначении кнопки можно узнать из выпадающей справки, если остановить на ней курсор.
Так же добавились аргументы командной строки самого Хумана: /script_args:"7011 " /in_tray:"true". Аргумент /script_args служит для передачи аргументов внутрь скрипта, а /in_tray за сворачивание при старте Хумана в трэй. Нужно отметить, что с помощью /script_args можно передовать в скрипт любое количество агрументов. Для передачи их в скрипт используется запись /script_args "7015 аргумент1 аргумент2 и т.д. ". Для получения этих аргументов в скрипте используется $argv — массив переданных скрипту аргументов, где: $argv[0] - это всегда путь к скрипту, а $argv[1]- порт. Остальные аргументы будут находиться в элементах массива $argv, начиная со второго, то есть: $argv[2] - аргумент1, $argv[3] - аргумент1, $argv[4] - т.д.
Синхронизация - это не синхронизация потоков, а синхронизация отображения потока в менеджере,то есть после перезапуска программы он отвязывается от менеджера и получается что бы его привязать обратно нужно синхронизировать менеджер с отвалившимися потоками. Или если хуманы уже были запущены менеджер запускаешь и делаешь синхронизацию тогда это потоки появляются в менеджере.
И вот в данной статье можно найти некоторые ответы по тонкостям работы и какие каверзы могут возникнуть, если работать в рамках одного сайта https://xn--80awbbeioodeq4h3a.xn--p1ai/forum/viewtop ... 69&start=0
XHEManager. С его помощью запуск скриптов в многопоточном режиме можно значительно упростить. Не смотря на то, что Менеджер позволяет размножать папки с программой специальной опцией из меню «Файл» , есть куда более экономичный и простой способ, который и будет описан ниже.
Начнём с подготовки скрипта. Найдите (или добавьте в начало нужного скрипта, если этой строки в нём нет) переменную $xhe_host ="127.0.0.1:7010"; Чтобы скрипт запускался без проблем, нужно заменить порт в этой строке на переменную $argv[1]. После этого строка станет примерно такой: $xhe_host ="127.0.0.1:".$argv[1]; Если в скрипте планируется использование рестарта ($app->restart), то переменную $argv[1] нужно также поставить вместо аргументов $params и $port. То есть, функция будет выглядеть примерно так: $app->restart($scriptpath="",$argv[1],$argv[1]);
Проведённые нами манипуляции позволят передавать в скрипт все нужные для полноценной работы данные, так что осталось лишь добавить задание через менеджер. В меню «Добавить» необходимо проверить путь к программе, указать путь к скрипту и в строке «Порт» выставить номер порта. Количество нужных потоков можно определить после щелчка по соответствующей галочке.
После всего этого можно стартовать нужные потоки, выделив их через ctrl и нажав кнопку «Запустить». Менеджер поочерёдно откроет заданное количество копий программы и начнёт отрабатывать скрипты.
*Длину паузы между запусками копий программы можно выставить в настройках.
*Кнопка «Остановить все» закрывает все запущенные копии Эмулятора, а не останавливает работающие в них скрипты.
*Узнать подробности о предназначении кнопки можно узнать из выпадающей справки, если остановить на ней курсор.
Так же добавились аргументы командной строки самого Хумана: /script_args:"7011 " /in_tray:"true". Аргумент /script_args служит для передачи аргументов внутрь скрипта, а /in_tray за сворачивание при старте Хумана в трэй. Нужно отметить, что с помощью /script_args можно передовать в скрипт любое количество агрументов. Для передачи их в скрипт используется запись /script_args "7015 аргумент1 аргумент2 и т.д. ". Для получения этих аргументов в скрипте используется $argv — массив переданных скрипту аргументов, где: $argv[0] - это всегда путь к скрипту, а $argv[1]- порт. Остальные аргументы будут находиться в элементах массива $argv, начиная со второго, то есть: $argv[2] - аргумент1, $argv[3] - аргумент1, $argv[4] - т.д.
Синхронизация - это не синхронизация потоков, а синхронизация отображения потока в менеджере,то есть после перезапуска программы он отвязывается от менеджера и получается что бы его привязать обратно нужно синхронизировать менеджер с отвалившимися потоками. Или если хуманы уже были запущены менеджер запускаешь и делаешь синхронизацию тогда это потоки появляются в менеджере.
И вот в данной статье можно найти некоторые ответы по тонкостям работы и какие каверзы могут возникнуть, если работать в рамках одного сайта https://xn--80awbbeioodeq4h3a.xn--p1ai/forum/viewtop ... 69&start=0
Re: многопоточность через XHE Manager
Здесь я не совсем понял. Есть допустим файл с проксями и аккаунтами и нужно что бы для каждого потока были свои прокси и акаунты - как это сделать?Support писал(а): Так же добавились аргументы командной строки самого Хумана: /script_args:"7011 " /in_tray:"true". Аргумент /script_args служит для передачи аргументов внутрь скрипта, а /in_tray за сворачивание при старте Хумана в трэй. Нужно отметить, что с помощью /script_args можно передовать в скрипт любое количество агрументов. Для передачи их в скрипт используется запись /script_args "7015 аргумент1 аргумент2 и т.д. ". Для получения этих аргументов в скрипте используется $argv — массив переданных скрипту аргументов, где: $argv[0] - это всегда путь к скрипту, а $argv[1]- порт. Остальные аргументы будут находиться в элементах массива $argv, начиная со второго, то есть: $argv[2] - аргумент1, $argv[3] - аргумент1, $argv[4] - т.д.
Re: многопоточность через XHE Manager
Я имею ввиду как присвоить переменной $argv[2] файл с проксями?Если я правильно понял.