Показать сообщение отдельно

  #3  
Старый 27.04.2007, 14:45
null_access
Участник форума
Регистрация: 31.01.2005
Сообщений: 151
Провел на форуме:
422765

Репутация: 11
По умолчанию

начал делать с помощью proc_open:
Код:
<?php
set_time_limit(0);
for($t=0;$t<100000;$t++) //цикл
{

$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin это канал, из которого потомок будет читать
   1 => array("pipe", "w"),  // stdout это канал, в который потомок будет записывать
   2 => array("file", "/tmp/error-output.txt", "a"), // stderr это файл для записи
);
$process = proc_open("php", $descriptorspec, $pipes);

if (is_resource($process)) {

    // $pipes выглядит теперь примерно так:
    // 0 => записываемый дескриптор, соединённый с дочерним stdin
    // 1 => читаемый дескриптор, соединённый с дочерним stdout
    // Любой вывод ошибки будет присоединён к /tmp/error-output.txt

    fwrite($pipes[0], func_needed_timeout($zz));
    fclose($pipes[0]);

    while(!feof($pipes[1])) {
        echo fgets($pipes[1], 1024);
    }
    fclose($pipes[1]);
    // Важно, чтобы вы закрыли любые каналы до вызова
    // proc_close, чтобы исключить тупиковую блокировку
    $return_value = proc_close($process);

    echo "command returned $return_value\n";
}

}

function function_needed_timeout($zz)
{
set_time_limit(10);
//здесь дописать код ункции нуждающаяся в прерывании по таймауту
}
?>
Думал set_time_limit если установить на родительский и дочерний процессы как в примере, всё будет работать, а нет, всё равно прерывается работа всего скрипта.
Need help, как принудительно прерывать функцию под названием function_needed_timeout($zz) через заданный промежток времени?
 
Ответить с цитированием