您用于在unix风格的操作系统中安排事情的工具是cron
。如果您的服务器运行MS Windows,则需要使用其他一些调度程序。
有几种方法可以使用cron
来运行脚本。
首先,如果您有可用的CLI版本的PHP(而不是Apache模块或fcgi版本),则可以直接运行它。在我的系统,一个cron作业运行脚本每分钟一次可能是这样的:
* * * * * /usr/local/bin/php /path/to/your/script.php
注意,在您体系,php
二进制可能位于/usr/bin/
或/opt/local/bin/
或其他地方。您需要检查操作系统的软件包存储库以找到位置,或从终端输入which php
。
如果使用“shebang”在脚本的开始,你可以摆脱一个简单的cron作业:有关运行PHP shell脚本
* * * * * /path/to/your/script.php
更多信息,可以发现here。一个警告虽然...如果您直接启动脚本,他们将运行作为拥有cron作业,可能有安全(或至少是许可)影响的用户。如果您不明白这意味着什么,请在做之前提出更多问题!
如果不有一个命令行PHP可用,你仍然可以有通过cron运行,由像curl
或wget
或fetch
命令行HTTP客户端获取它的PHP脚本(取决于您的操作系统)。例如:
* * * * * curl -o /dev/null http://example.com/path/to/script.php
或
* * * * * wget -O /dev/null http://example.com/path/to/script.php
在UNIX系统上,你可以man crontab
关于如何安装cron作业指令,以及可能man 5 crontab
(取决于您的操作系统)的说明,对于格式设置特定的时间。请注意,cron使用1分钟的粒度。如果你想要比这更高的频率,你可以伪装它。例如,对于每分钟3次:
* * * * * /path/to/your/script.php
* * * * * sleep 20; /path/to/your/script.php
* * * * * sleep 40; /path/to/your/script.php
如果你想要更小的频率,可以使用crontab's documented format。例如,平日每隔五分钟,但是每隔10分钟,周末:
*/5 * * * 1-5 /path/to/your/script.php
*/10 * * * 6-7 /path/to/your/script.php
时候开始学习[WebSockets的(http://www.html5rocks.com/en/tutorials/websockets/basics/)? :) – ghoti
@ghoti实际上,他想要的很可能是cronjob更新值,第二个脚本只是为了读取客户端的值。 – dbemerlin
我同意,但我仍然认为,看看影响较小的解决方案,而不是有大量请求建立数据库连接的客户端会很有价值。我想另一种可能性是PHP处理程序检查db中记录的最后更新时间,并且只在比“X时间量”更早时更新。 – ghoti