PHP异步读取(shell脚本)

发布于 2024-11-02 02:20:21 字数 221 浏览 4 评论 0原文

我有一个 PHP TCP 守护进程,它向客户端提供数据。功能之一是从“tail -f messages”命令获取信息。因此,我必须异步运行此命令,如果有新数据,请将其发送到客户端。

我有一个如何创建这个异步读取器的问题 - 添加新数据时,运行该方法,否则执行您必须执行的其他操作。

Mejmo

编辑:我的问题可以通过使用某些类型的线程和 IPC 来解决(php 支持线程吗?)。

I have a PHP TCP daemon which provides data to clients. One of the features is to get info from "tail -f messages" command. So I have to run this command asynchronously and in case of new data, send it to the clients.

I have a problem how to create this asynchronous reader - when new data is added, run the method, otherwise do the other things you have to.

Mejmo

EDIT: My problem could be resolved by using some kinds of threads and IPC (does php support threads?).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不即不离 2024-11-09 02:20:21

如果您可以安装扩展,则可以使用 libevent PHP 扩展来实现此目的。

If you can install extensions, you can implement this using the libevent PHP extension.

百善笑为先 2024-11-09 02:20:21

使用 popen 执行tail -f message ,将 'r' 作为 $mode 参数传递。然后您可以从返回的文件指针fread

Use popen to execute tail -f message, passing 'r' as the $mode parameter. Then you can fread from the returned file pointer.

风轻花落早 2024-11-09 02:20:21

尝试 stream_set_blocking(),它应该可以解决问题。

Try stream_set_blocking(), it should do the trick.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文