51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> 其它 >> 文章正文

Apache能否让一个PHP文件每隔几秒执行一次

更新时间:2012-1-12:  来源:51代码网

请允许我问这个很白痴的问题,不过我琢磨了很长时间也没想到一个很好的解决办法。
背景是这样的:我需要一段PHP代码去定期的对数据库的数据进行操作,并把结果保存起来。假如只是在用户请求的时候去执行这段代码的话,用户的响应时间会很长,用户体验极差。所以我希望能有一个程序专门来执行这段代码。开始的时候想到用windows的计划任务来解决,但是由于执行的频率非常高,用计划任务显然不合适。
所以希望高人指点,若能给个简单的例子就再好不过了,谢谢!

ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
   //这里是你要执行的代码  
   sleep($interval);// 等待5分钟
}while(true);

多种方法:
1.用sleep()函数实现类似linux contab定时执行的功能。

2.linux系统直接在crontab中添加定时任务。

用js刷新一个页面。

设置浏览器的主页为这个页面。

把浏览器加到windows的开机启动里。

写测试脚本:
<?php

ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=30;// 每隔一定时间运行
do{

//这里是你要执行的代码  
$msg=date("Y-m-d H:i:s") ." -执行了~ \n";
file_put_contents("log.log",$msg,FILE_APPEND);
 
  sleep($interval);// 等待5分钟
}while(true);


然后直接就可以在命令行里边执行 
c:\php5\php.exe test.php

可以把这个加入开始开机运行 或加入到系统服务中,就可以自动运行了

赞助商链接
推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |