На самом деле у меня есть функция proc_open
, которая будет выполнять команду и передать ее подкоманды. Здесь есть проблема, которая будет происходить иногда и не обычно.PHP - Подождите определенное время для выполнения одной строки, в противном случае возврат
Проблема
Когда я хочу, чтобы процесс конвейеру -Выход нет никакого ответа от сервера назначения и сценарий будет ждать ответа до .....
Вопрос
Я хочу сказать, что ждать ответа в течение 20 секунд, и если вы не получите никакого ответа. возврат из функция. Это важно, что я не хочу останавливать выполнение сценария, но просто возвращаюсь из функции.
Должен ли я использовать многопоточные библиотеки как POSIX?
Есть ли способ реализовать эту идею?
Любая идея будет оценена по достоинству. Заранее спасибо
Пример кода
<?PHP
set_time_limit(0);
.....
public function test()
{
foreach ($this->commands as $cmd)
{
fwrite($pipes[0], "$cmd \n");
//Sometimes PHP stuck on the following line
//Wait for almost 20 sec if respond did not came return
$read = fread($pipes[1], 2096) . "\n";
}
}
Возможно, это может вам помочь: http://stackoverflow.com/questions/7749869/how-can-i-set-time-out-for-fread-when-access-socket – nikoskip