Строго Парралельный запуск скриптов

insidex

флихтэръер
Строго Парралельный запуск скриптов

Уважаемые,я бы даже сказал,нужно не просто запустить скрипты,а отдать им команду на исполнение,не больше.

Т.е.
PHP:
$run = exec("/usr/local/bin/php5 -f $patch/multi1.php > $patch/mmm1.txt &");
$run = exec("/usr/local/bin/php5 -f $patch/multi2.php  > $patch/mmm2.txt &");  
$run = exec("/usr/local/bin/php5 -f $patch/multi3.php > $patch/mmm3.txt &");  
$run = exec("/usr/local/bin/php5 -f $patch/multi4.php > $patch/mmm4.txt &");
Допустим, в каждмом multi?.php стоит sleep(10).

При такой раскладке, данный код запускает по цепочке multi1.php->multi2.php->...->multi4.php
Как итог: 40 секунд выполнения.

А нужно,чтобы эти четыре скрипта запустились одновременно,парралельно,как угодно,но не последовательно.Т.е. чтобы результат был 10 секунд.

Пожалуйста,есть какие-нибудь идеи ?

ps С секундами для примера привел.
 

insidex

флихтэръер
Фанат спасибо, я надеялся,что ты это скажешь,иначе у меня парадокс какой-то получается.

ЗЫ:
Непонимаю, а как иначе еще может запуститься этот скрипт. Сначало вызывается multi1.php(ждем 10 секунд) ->....->multi4.php(уже прошло 30 секунд) . Только что проверил на Денвер. Что-то идеология мне подсказывает,что скрипты multi*.php надо запускать,как фоновый процесс причем одновременно.

Помогите,пожалуйста,решить эту делему
 

ksnk

прохожий
exec для Виндов не очень похож на exec для *nix
PHP:
function execInBackground($path, $exe, $args = "") {
   global $conf;

   if (file_exists($path . $exe)) {
       chdir($path);
       if (substr(php_uname(), 0, 7) == "Windows"){
           pclose(popen("start \"bla\" \"" . $exe . "\" " . escapeshellarg($args), "r"));
       } else {
           exec("./" . $exe . " " . escapeshellarg($args) . " > /dev/null &");
       }
   }
}
Вот! Может, поможет :)
 

insidex

флихтэръер
ну не нужен мне CRON ,ни нужны мне лишние демоны. Зачем привязывать скрипт к никсам?

Скажите просто,вызов multi*.php,как фонового процесса - решит данную проблему??

-~{}~ 16.02.06 18:33:

ksnk

Спасибо,уже видел. Без popen() может как-нибудь....
 

insidex

флихтэръер
ksnk
Я не понимаю, может и ты не понимаешь...
Чем тобой добытая функция отличается от того,что я написал в первом посте?

зы происходит такой же вызов exec()
 

kvf77

Red Devil
insidex
знаешь, тебе помоему пора сказать "пока" и закрыть эту тему - если ты не хочешь решить свою проблему - не пудри нам мозги - тебе дали ответов - а свое "не хочу".. ну ты понял что с ним надо делать - не хочешь - мы тоже не хотим.
 

kvf77

Red Devil
insidex
тебе дали достаточно информации - ты даже не удосужился ее прочитать - иначе бы уже давно перестал конючить
 

insidex

флихтэръер
Благодарю Вас светлейшие) . невнимательно читал сообщение от ksnk :)
 
Сверху