humanemulator.net — справка. Продукт, демо и покупка — на хуманэмулятор.рф | Демо | Купить | API | лог изменений

restart

restart($scriptpath="",$params="",$port="",$cache_folder="",$cookies_folder="",$pause_before_start_s=0); - сделать перезапуск хуман эмулятора, обычно применяется для борьбы с утечками памяти браузера

Функция на вход принимает параметры:

  • $scriptpath – путь к скрипту, что будет запущен после рестарта
  • $params – параметры, что будут переданы запущенному после рестарта скрипту
  • $port – порт, на котором будет запущен хуман после рестарта
  • $cache_folder – папка под кэш, которую будет использовать хуман после рестарта, также с версии 4.10.8 при передаче параметра "default" - будут использоваться путь к папке по умолчанию (системный)
  • $cookies_folder – папка под куки, которую будет использовать хуман после рестарта, также с версии 4.10.8 при передаче параметра "default" - будут использоваться путь к папке по умолчанию (системный)
  • $pause_before_start_s – пауза, котрая дается хуману на закрытие (в секундах), на старых или загржуеных машинах есть смысл выставит в 2-3 секунды (доступна с 4.10.16 версии)

    После отработки функция возвращает результат своей работы в скрипт :
  • true – успешно отработали
  • false – операция не удалась

    Пример использования
    <?php
    // Scenario: Restart the application with different parameters
    $xhe_host = "127.0.0.1:5006";
    if (!isset($path)){
        // Path to the init.php file for connecting to the XHE API
        $path = "../../../Templates/init.php";
        // Including init.php grants access to all classes and functionality for working with the XHE API
        require($path);
    }
    
    // beginning
    echo "\n<font color=blue>app->" . basename (__FILE__) . "</font>\n";
    
    // step
    echo "1. Display command line arguments:\n";
    $out = WINDOW::$app->get_port() . ": ";
    if (count($argv) >= 1)
        $out .= "argv[0]=" . $argv[0] . "\n";
    if (count($argv) >= 2)
        $out .= "argv[1]=" . $argv[1] . "\n";
    if (count($argv) >= 3)
        $out .= "argv[2]=" . $argv[2] . "\n";
    if (count($argv) >= 4)
        $out .= "argv[3]=" . $argv[3] . "\n";
    // output
    echo $out;
    WINDOW::$app->set_title($out);
    
    // pause
    sleep(3);
    
    // restart the application with script launch
    // Example 1
    $scriptFile = "restart.php";
    $scriptArgs = "1_1 1_2 1_3";
    $newPort = "7011";
    if ($argv[1] == "") {
        echo "\n\nExample 1: Restart with first set of arguments\n";
        $restartResult = WINDOW::$app->restart($scriptFile, $scriptArgs, $newPort);
        if ($restartResult)
            echo "Restart with first set of arguments initiated successfully\n";
        else
            echo "Failed to initiate restart with first set of arguments\n";
    }
    
    // Example 2
    $scriptArgs = "2_1 2_2 2_3";
    if ($argv[1] == "1_1") {
        echo "\n\nExample 2: Restart with second set of arguments\n";
        $restartResult = WINDOW::$app->restart($scriptFile, $scriptArgs, $newPort);
        if ($restartResult)
            echo "Restart with second set of arguments initiated successfully\n";
        else
            echo "Failed to initiate restart with second set of arguments\n";
    }
    
    // Example 3
    $scriptArgs = "3_1 3_2 3_3";
    $newCookiesFolder = "new_cookies_folder";
    $newCacheFolder = "new_cache_folder";
    $maxInstances = 10;
    if ($argv[1] == "2_1") {
        echo "\n\nExample 3: Restart with all parameters\n";
        $restartResult = WINDOW::$app->restart($scriptFile, $scriptArgs, $newPort, $newCookiesFolder, $newCacheFolder, $maxInstances);
        if ($restartResult)
            echo "Restart with all parameters initiated successfully\n";
        else
            echo "Failed to initiate restart with all parameters\n";
    }
    
    // Example 4
    if ($argv[1] == "3_1") {
        sleep(3);
        echo "\n\nExample 4: Final restart without arguments\n";
        $restartResult = WINDOW::$app->restart($scriptFile, "");
        if ($restartResult)
            echo "Final restart without arguments initiated successfully\n";
        else
            echo "Failed to initiate final restart without arguments\n";
    }
    
    // end
    echo "\n";
    
    // Quit the application
    WINDOW::$app->quit();
    ?>
    # Additional paths
    import sys
    sys.path.insert(0, '../../../Templates PY/')
    
    xhe_host = "127.0.0.1:7010"
    from xweb_human_emulator import *
    
    # начало
    echo("<hr><font color=blue>app.xxxxxxxxx</font><hr>")
    
    # 1 
    echo("1. Вывести аргументы командной строки : <br><br>")
    if len(sys.argv)>=1:
    	echo("argv[0]="+sys.argv[0],"<br>")
    if len(sys.argv)>=2:
    	echo("argv[1]="+sys.argv[1],"<br>")
    if len(sys.argv)>=3:
    	echo("argv[2]="+sys.argv[2],"<br>")
    if len(sys.argv)>=4:
    	echo("argv[3]="+sys.argv[3],"<br>")
    
    # пауза
    sleep(3)
    
    # перегрузить приложение с запуском скрипта
    if len(sys.argv)==1:
        app.restart("restart.py","1_1 1_2 1_3","7010")
    
    if sys.argv[1]=="1_1":
        app.restart("restart.py","2_1 2_2 2_3","7011")
    
    if sys.argv[1]=="2_1": 
        app.restart("restart.py","3_1 3_2 3_3","7012","new_cookies_folder","new_cache_folder",10)
    
    # конец
    echo("<hr><br>")
    
    # Quit
    app.quit()
    #region using
    
    using System;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Linq;
    using System.IO;
    using System.Text;
    using System.Threading;
    
    using XHE;
    using XHE.XHE_DOM;
    using XHE.XHE_System;
    using XHE.XHE_Window;
    using XHE.XHE_Web;
    
    #endregion
    
     class Program:XHEScript
     {
    	  static void Main(string[] args)
    	  {
    			// init XHE
    			server = "localhost:7010";
    			InitXHE();
    
    			// начало
    			echo("<hr><font color=blue>app.restart</font><hr>");
    	
    			// 1 шаг
    			echo("1. Вывести аргументы командной строки : \n\n");
    			if (args.Length>=1)
    				echo("args[0]="+args[0]+"<br>");
    			if (args.Length>=2)
    				echo("args[1]="+args[1]+"<br>");
    			if (args.Length>=3)
    				echo("args[2]="+args[2]+"<br>");
    			if (args.Length>=4)
    				echo("args[3]="+args[3]+"<br>");
    			
    			// пауза
    			sleep(5);
    			
    			// перегрузиить приложение с запуском скрипта
    			if (args.Length==0)
    				app.restart("restart.cs","1_1 1_2 1_3","7010");
    			if (args[0]=="1_1")
    				app.restart("restart.cs","2_1 2_2 2_3","7011");
    			if (args[0]=="2_1")
    					app.restart("restart.cs","3_1 3_2 3_3","7012","new_cookies_folder","new_cache_folder");			
    
    			// конец
    			echo("\n\n");
    
    			app.quit();            
    	  }
    }
    // подключим функциональные объекты, если еще не подключен
    xhe_host="127.0.0.1:7018";
    echo=require("../../../Templates JS/init.js");
    
    // начало
    echo("<hr><font color=blue>app.restart</font><hr>");
    
    // аргументы командной строки
    var argv=process.argv;
    
    // 1 шаг
    echo("1. Вывести аргументы командной строки : \n");
    if (argv.length >= 1)
    	echo("argv[0]="+argv[0]+"<br>");
    if (argv.length >= 2)
    	echo("argv[1]="+argv[1]+"<br>");
    if (argv.length >= 3)
    	echo("argv[2]="+argv[2]+"<br>");
    if (argv.length >= 4)
    	echo("argv[3]="+argv[3]+"<br>");
    
    // пауза
    browser.sleep(10);
    
    // выполнить рестарт
    {
    	// перегрузиить приложение с запуском скрипта
    	if (argv[1]=="")
    		app.restart("restart.php","1_1 1_2 1_3","7010");
    	if (argv[1]=="1_1")
    		app.restart("restart.php","2_1 2_2 2_3","7011");
    	if (argv[1]=="2_1")
    			app.restart("restart.php","3_1 3_2 3_3","7012","new_cookies_folder","new_cache_folder");
    	app.restart("restart.php","1_1 1_2 1_3","7010");
    }
    
    // конец
    echo("\n");
    
    // Quit
    app.quit();

    =============================================
    App    Объекты    DOM  System  Vision  Web  Window        
    =============================================
    если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
    .