PHP вызывает pcntl_signal_dispatch () каждые несколько секунд - PullRequest
0 голосов
/ 01 марта 2012

У меня есть PHP-скрипт, который читает из канала в режиме блокировки.

while($input = trim(fgets($pipe))) { do some stuff }

Я бы хотел, чтобы pcntl_signal_dispatch выполнялся каждые несколько секунд, пока мой сценарий ожидает ввода из канала, не нарушая чтение в очереди.

Есть предложения?

1 Ответ

0 голосов
/ 20 марта 2012

Насколько я знаю, вы не можете отвечать на сигналы, когда скрипт блокирует. Вам придется либо выполнять неблокирующее чтение из вашего канала, либо выполнять чтение в одном процессе и отправлять сигналы в другой процесс (читать в дочернем элементе и передавать обратно родителю через канал, чтобы родительский элемент реагировал на сигналы). Если вы читали на ребенке и передавали его родителю по каналу, то на самом деле вам могут не понадобиться сигналы.

Прочитайте это, это будет иметь больше смысла (содержит пошаговый код):

http://www.tuxradar.com/practicalphp/16/1/9

... и общая родительская страница:

http://www.tuxradar.com/practicalphp/16/0/0

...