PHP асинхронное чтение (сценарии оболочки) - PullRequest
3 голосов
/ 18 апреля 2011

У меня есть демон PHP TCP, который предоставляет данные клиентам. Одной из возможностей является получение информации из команды tail -f messages. Поэтому я должен выполнить эту команду асинхронно и, в случае появления новых данных, отправить ее клиентам.

У меня проблема с созданием этого асинхронного считывателя - при добавлении новых данных запустите метод, в противном случае выполните другие необходимые действия.

Mejmo

РЕДАКТИРОВАТЬ: Моя проблема может быть решена с помощью некоторых видов потоков и IPC (поддерживает ли php темы?).

Ответы [ 3 ]

1 голос
/ 18 апреля 2011

Если вы можете установить расширения, вы можете реализовать это, используя расширение libevent PHP.

0 голосов
/ 29 марта 2017

Попробуйте stream_set_blocking(), это должно сработать.

0 голосов
/ 18 апреля 2011

Используйте popen для выполнения tail -f message, передавая 'r' в качестве параметра $mode. Затем вы можете fread из указателя возвращаемого файла.

...