Страница 1 из 1
Чего не достает или что плохо описано в документации
Добавлено: 22 окт 2013, 14:52
bigfozzy
Сюда принимаются запросы на доработку и создание документации.
Все что вы желаете видеть в разделах Cправка и FAQ как на форуме так и на сайте.
Спасибо.
Re: Чего не достает или что плохо описано в документации
Добавлено: 27 фев 2014, 03:37
nikson
Не совсем понятно как работать с XHE Manager, как синхронизировать потоки, как задать все необходимые аргументы, каким образом работает синхронизация через менеджер?
Re: Чего не достает или что плохо описано в документации
Добавлено: 27 фев 2014, 15:42
Support
Добрый день.
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 и нажав кнопку «Запустить». Менеджер поочерёдно откроет заданное количество копий программы и начнёт отрабатывать скрипты.
*Длину паузы между запусками копий программы можно выставить в настройках.
*Кнопка «Остановить все» закрывает все запущенные копии Эмулятора, а не останавливает работающие в них скрипты.
*Узнать подробности о предназначении кнопки можно узнать из выпадающей справки, если остановить на ней курсор.
Постараемся сделать наглядную статью по XHE Manager'y.
Re: Чего не достает или что плохо описано в документации
Добавлено: 27 фев 2014, 15:55
nikson
Добрый день!
А отдельно аргументы для локальных переменных нужно создавать? У меня в основном скрипте весь список перебирается через цикл for, как в таком случае будут синхронизироваться потоки чтобы для каждого потока бралась своя строка? И что означает кнопка "Синхронизировать потоки" в менеджере, каким образом она их будет синхронизировать?
Re: Чего не достает или что плохо описано в документации
Добавлено: 27 фев 2014, 16:35
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: Чего не достает или что плохо описано в документации
Добавлено: 28 фев 2014, 12:45
nikson
Можно как-то задать глобальную переменную, повесить ее на счетчик и передать в качестве аргумента в менеджере потока?
Возьмем для примера простой цикл:
Код: Выделить всё
$file_url = file("data/url.txt");
$file_res = "res/url.txt";
for($i = 0; $i < count($file_url); $i++) {
$url = trim($file_url[$i]);
$browser->navigate($url);
Как задать аргумент чтобы каждый поток брал строку со своим номером
$i? Не совсем понимаю как это делается на XHE, ведь тут каждый поток это отдельная копия, у каждой копии свой счетчик и тд и тп. На дескопе это реализуется простой критической секцией.
Re: Чего не достает или что плохо описано в документации
Добавлено: 12 мар 2014, 18:01
nazir
1. Можно добавить статью по использованию (синтаксису) использования регулярных выражений в программе.
Использование регулярного выражения при обработке текста из файла и из переменной.
2. Подробное описание удаленного управления программой. Через браузер и через файл.
3. Описание того как послать команду на выполнение скрипта в Human Emulator к примеру из сайта wordpress. Если программа находится на том же хостинге. Если программа находится на другом хостинге.
4. Tutor запуска Human Emulator в Linux. Установка wine, установка Human Emulator. Запуск и исполнение команд Human Emulator под линуксом.
Re: Чего не достает или что плохо описано в документации
Добавлено: 13 мар 2014, 12:29
Support
Добрый день.
По статье материал готовится, в скором времени выложим статью по регулярным выражениям, с примерами.
В данных статья рассказывается про удаленное управление программой
http://www.x-scripts.com/articles/remote_work_xhe.php
В этой статье запуск программы через bat-файл
http://www.x-scripts.com/articles/multithread1.php
Программы HumanEmulator работает под системой Windows.
Re: Чего не достает или что плохо описано в документации
Добавлено: 08 мар 2015, 18:14
Клава
Support писал(а):
Постараемся сделать наглядную статью по XHE Manager'y.
Можно ссылку? - так я и не понял как с ним работать