轮询正在运行的php cli脚本

时间:2010-04-14 06:36:59

标签: php

我想从命令行运行一个php脚本,该脚本始终在运行并不断更新变量。

然后我想要在此期间运行的任何php脚本(可能但不一定是来自Web)能够随时读取该变量。

任何人都知道我该怎么做?

感谢。

4 个答案:

答案 0 :(得分:1)

在这里,您需要某种进程间通信机制。

你不能使用PHP变量:这些是他们所在的脚本的本地

这意味着您必须使用一些“外部”工具来存储您的数据,例如,仅提及一些:

  • 文件
  • 数据库(SQLite,MySQL,...)
  • 部分shared-memory

在每种情况下,您都会:

  • 一个写入数据存储空间的脚本 - 即您的第一个始终运行的脚本
  • 将从数据存储中读取的一个或多个其他脚本

答案 1 :(得分:0)

您应该使用CLI脚本将变量写入文件,并使用其他脚本从中读取。

务必使用flock来防止竞争条件。

答案 2 :(得分:0)

您可以编写基于php套接字的服务器脚本,该脚本将侦听所需的端口。查找文章here。 然后您的客户端php脚本可以在本地或从Web连接到它并检索任何数据,包括变量。 您可以使用由您设计的任何简单协议或XML等众所周知的协议来传输变量。

答案 3 :(得分:0)

很多想法:

  1. 按设定的时间间隔,它会附加/写入文件。
  2. 您使用sqlite并将数据写入其中。
  3. 您使用小型memcached服务作为中间人。
  4. 你有点疯狂,写一个套接字类,听一个设置端口,然后进行非阻塞调用来检查。
  5. 1-2可能是最简单的 如果你需要经常查询这个值,3会很有用 4会很有趣,但可能不值得努力。