|
|
|
|
|
для: svk1be
(07.02.2008 в 14:30)
| | У кого то есть еще какие то идеи ?
Спасибо | |
|
|
|
|
|
|
|
для: vitali
(07.02.2008 в 09:48)
| | Ну во первых, это не професионально, во вторых дочерние процесы которые запускаються в моем скрипте выполняют сооединение со сторонними серверами, что влияет на разное время их полной отработки. То есть каждый из процессов может занять от 1 сек до 30 сек. Поскольку их около сотни, разница ощутима. По максимуму брать - глупо. Я наслышан, что существуют функции типа pcntl_wait и pcntl_waitpid, но сколько не читал, не могу понять как их правильно использовать.. Помогите, плиз.
Спасибо | |
|
|
|
|
|
|
|
для: svk1be
(06.02.2008 в 21:03)
| | В начале скрипта "сними" время $t1, затем перед выдачей "word" зафиксируй время на этот момент $t2 проверь разницу $t2-$t1 > 30 сек выдавай "word" иначе "спи" (30 - ($t2-$t1)) и т.д. | |
|
|
|
|
|
|
|
для: svk1be
(06.02.2008 в 16:28)
| | Так есть у кого то какие то идеи? Пожалуйста!! Очень срочно.. :(
Спасибо за ранее.. | |
|
|
|
|
|
|
| Здраствуйте,
Если кто то изучал основы работы с функциями библиотеки pcntl, помогите, пожалуйсто, решить следующую проблему.
У меня есть скриптик который "форкает" процессы создавая дочерние, которые работают определенное время и возвращают на екран некоторые данные в зависимости от результатов, а в это время скрипт продолжает выполняться.. Возможно ли сделать так, что бы скрипт ждал пока завершаться все дочерние процесы и продолжил свое выполнение.
Я имею ввиду следующий пример:
<?php
require("../include/functions.php");
echo "Hello,";
while (something isn't reached){
$pid = pcntl_fork ();
if ($pid== -1) {
die ("ERROR\n");
}elseif ($pid){
$var= function ();
echo $var;
endif;
}
}
echo "World";
?>
|
допустим выполнение функции function может занимать от мили секунды до пол минуты, и мне надо что бы скрипт вывел сначала "Hello," потом по завершении всех дочерних процессов вывел "World". Сейчас он выводит "Hello, World" а потом уже результаты процессов, или же сначала "Hello," потом результат части процессов, которые сработали быстро , потом "World", а потом результат остальных процессов.
Как же сделать, что бы все было по-порядку? :-/
Сразу говорю, что простой цыкл мне не подходит, надо именно дочерними процессами..
Большое спасибо за помощь | |
|
|
|
|