ShivaGupta Posted September 3, 2013 Share Posted September 3, 2013 i found this script to run many php as same time. <?php /** * @author Multi-threaded script by Nicolas Iglesias * @copyright 2008 */ require_once ("thread_class.php"); $pathToPhp = "/usr/bin/php"; $A = new Threader("$pathToPhp -f test.php",null, "a"); /** * First argument: external script or command (required). * Second argument: arguments that your external script or command will receive (optional). * Third argument: name of thread (optional). */ $B = new Threader("$pathToPhp -f test.php",null, "b"); $C = new Threader("$pathToPhp -f test.php",null, "c"); $D = new Threader("$pathToPhp -f test.php",null, "d"); $E = new Threader("$pathToPhp -f test.php",null, "e"); $F = new Threader("$pathToPhp -f test.php",null, "f"); /** * We check if any of the 'active' states of our threads are true; * then we display its output using 'listen'. */ while ($A->active || $B->active || $C->active || $D->active || $E->active || $F-> active) { echo "[Thread ".$A->threadName."] => " . $A->listen(); echo "[Thread ".$B->threadName."] => " . $B->listen(); echo "[Thread ".$C->threadName."] => " . $C->listen(); echo "[Thread ".$D->threadName."] => " . $D->listen(); echo "[Thread ".$E->threadName."] => " . $E->listen(); echo "[Thread ".$F->threadName."] => " . $F->listen(); } ?> <?php /** * Threader * * @package Threader Class * @author Nicolas Iglesias - [email protected] - cleversight.com * @copyright 2008 * @version 1.0 * @access public */ class Threader { var $threadName = null; var $rid = null; var $error = null; var $pipes = array(); var $active = false; /** * Threader::Threader() * * The constructor which opens the process. * * @param mixed $cmd - Execute a shell command * @param mixed $vars - Pass arguments to shell command * @param string $name - Identifies your thread (useful for debug) * @return void */ function Threader($cmd = null, $vars = null, $name = null) { $descriptorspec = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w")); $pipes = array(); if (!empty($cmd)): $this->threadName = $name; try { $this->rid = proc_open("$cmd $vars", $descriptorspec, $this-> pipes, null, $_ENV); $this->active = true; } catch (exception $e) { $this->active = false; $this->error = $e->getMessage(); } endif; } /** * Threader::listen() * * While $this->active == true, you can monitor a thread by calling this method. * * @return string - Will return the output of the running process */ public function listen() { if (is_resource($this->rid) && !empty($this->pipes)) { $stdout = (isset($this->pipes['1'])) ? $this->pipes['1'] : null; return fgets($stdout); } else { return null; } } function __destruct() { $this->active = false; if (is_resource($this->rid)) proc_close($this->rid); if (!empty($this->error)) echo $this->error; } } ?> but i dont understand this line in this script $pathToPhp = "/usr/bin/php"; $A = new Threader("$pathToPhp -f test.php",null, "a"); can any one explain about $pathToPhp . because script not working for me n i think something wrong with path.i am testing with linux web hosting.. so plz help me to shortout this . Link to comment https://forums.phpfreaks.com/topic/281803-need-help-with-multi-threaded-script/ Share on other sites More sharing options...
ShivaGupta Posted September 3, 2013 Author Share Posted September 3, 2013 anybody plz explain this code can run minium 5 php prosses in background ? also plz tell me is this path ($pathToPhp) releted to php files or php installtion diarectory? Link to comment https://forums.phpfreaks.com/topic/281803-need-help-with-multi-threaded-script/#findComment-1447972 Share on other sites More sharing options...
AbraCadaver Posted September 3, 2013 Share Posted September 3, 2013 //path to php executable $pathToPhp = "/usr/bin/php"; //$pathToPhp means run PHP //-f test.php means run that file //null means options you send to your script, in this case none //a is any name you give to this thread so you can reference it later $A = new Threader("$pathToPhp -f test.php", null, "a"); Link to comment https://forums.phpfreaks.com/topic/281803-need-help-with-multi-threaded-script/#findComment-1447978 Share on other sites More sharing options...
ShivaGupta Posted September 7, 2013 Author Share Posted September 7, 2013 //path to php executable $pathToPhp = "/usr/bin/php"; //$pathToPhp means run PHP //-f test.php means run that file //null means options you send to your script, in this case none //a is any name you give to this thread so you can reference it later $A = new Threader("$pathToPhp -f test.php", null, "a"); ok thank you sir i understand that but here i have another quection n need help again.............. 1.How to get correct "$pathToPhp of my linux hosting ? 2. and for file this code can work with only test.php or need full path of file ? Link to comment https://forums.phpfreaks.com/topic/281803-need-help-with-multi-threaded-script/#findComment-1448565 Share on other sites More sharing options...
jazzman1 Posted September 7, 2013 Share Posted September 7, 2013 1.How to get correct "$pathToPhp of my linux hosting ? which php or whereis php 2. and for file this code can work with only test.php or need full path of file ? Yes, the script is written to run some other commands from test.php file. Make sure they are on the same directory. Link to comment https://forums.phpfreaks.com/topic/281803-need-help-with-multi-threaded-script/#findComment-1448587 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.