我有一个PHP页面,可以在数据库中读写一些数据。我有没有办法每隔n秒自动运行服务器上的PHP页面(而不是客户端的请求)?
答案 0 :(得分:4)
不是拥有cronjob,而是拥有'守护进程'样式脚本可能更容易/更有效。
一个始终在运行的脚本,只是按设定的时间间隔执行某些操作。
<?php
while(true) {
do_stuff();
sleep(30);
}
(更有效率,因为脚本不需要在每次运行时都进行完全启动。它可以在调用do_stuff之间保持配置等。)
How to run process as background and never die?
当然'do_stuff()'实际上可能只是在调用另一个脚本
function do_stuff() {
file_get_contents('http://example.com/scripts/calc.php');
}
答案 1 :(得分:2)
根据您的Linux风格,您需要设置一个cronjob。
请参阅此处了解一点:http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
答案 2 :(得分:0)
如果你的工作可以每X分钟运行一次,那么你应该注册一个cron作业(我假设你正在使用linux服务器)。打开控制台并输入:
$crontab -e
然后添加以下行:
*/10 * * * * php /home/yourdir/the-script.php
这将每10分钟调用一次脚本。如果你需要使用绝对文件路径,我不是肯定的,但这就是我的工作,它起作用:)