Windows中使用计划任务自动执行PHP程序实例
所谓任务计划就是由计算机自动调用用户事先设置好的应用程序,从而达到简化用户操作的目的。利用Windows 2000的任务计划程序(相当与*NIX下的cron程序,这里不再对其详述),我们可以安排任何脚本、程序或文档在最恰当的时候运行,从而满足自己的需要。下面以Windows 2000为例。 具体来说,我们若需利用任务计划程序自动运行则应执行如下步骤: 单击"开始"按钮,然后依次选择"程序"→"附件"→"系统工具"→"任务计划"(或者是"设置"→"控制面板"→"任务计划"),启动Windows 2000的任务计划管理程序。 好了,讲了这么多任务计划的应用,现在我们切入正题,下面将介绍两个例子: 一、让PHP定时运行 编辑如下代码,并保存为test.php: 代码如下: $fp = @fopen("test.txt","a+"); 添加一个任务计划,在(如图2所示)这一步输入命令: 代码如下: D:php4php.exe -q D:php4test.php 时间设置为每隔1分钟运行一次,然后运行这个任务。 代码如下: 2003-03-03 11:08:01 让PHP定时运行吧!
2003-03-03 11:09:02 让PHP定时运行吧! 2003-03-03 11:10:01 让PHP定时运行吧! 2003-03-03 11:11:02 让PHP定时运行吧! 二、让MYSQL实现自动备份 编辑如下代码,并保存为backup.php,如果要压缩可以拷贝一个rar.exe: 代码如下: if ($argc != 2 || in_array($argv[1],array('--help','-?'))) { ?> backup Ver 0.01,for Win95/Win98/WinNT/Win2000/WinXP on i32 Copyright (C) 2000 ptker All rights reserved. This is free software,and you are welcome to modify and redistribute it under the GPL license PHP Shell script for the backup MySQL database. Usage: 添加一个任务计划,在(如图2所示)这一步输入命令: 代码如下: D:php4php.exe -q D:php4backup.php databasename 时间设置为每天运行一次,然后运行这个任务。 以上是原著.结合本人实贱,补充说明如下: 如果出现错误:
在上面'"4.接下来系统将会要求用户设置适当的用户名及密码,以便系统今后能自动加以运行".这里最好用"system"用户,密码可为空. 上面2、添加一个任务计划,在这一步输入命令: 代码如下: D:php4php.exe -q D:php4test.php
正确形式应为 代码如下: "D:php4php.exe" -q "D:php4test.php"
即路径要用双引号括住. 最近做了几个PHP的游戏项目,有棋牌游戏也有rpg游戏,其中都或多或少的需要一些定时更新信息的机制。比如棋牌游戏的玩家超时检测。rpg游戏中用到的就更多了,怪物刷新、自动回血、任务过期、排行榜刷新等等。因为PHP没有内存驻留程序,所以在处理上有一些困难。 我参考了一些同行的实现方法,通常的做法是根据具体项目的需要,用c++、python、java等写一个辅助程序,定时对数据库进行更新。但 我在项目中采用了一种定时执行任务的方法,自己感觉这个方案比较好,属于一劳永逸型的,把所有代码全都交给PHP这边。 首先在数据库中,定义一个名为task的表,里面有两个字段 exectime 和 这样做的好处是PHP程序开发人员可以很自由的在他们想要的时间执行他们想要执行的网页。而且这个程序只需要写一次,放到任何类似项目中都可以很好的使用。 我将这个程序做成了windows服务和archlinux的Daemon,这样就实现了整个项目的跨平台。 补充内容: 任务的开启是这样的,我们做了一个类似大型网游的服务器开关界面,登录游戏后台后,到服务器控制页面,可以查看当前服务器的运行状态,可以开启或者关闭服务器。开启服务器则是把相关任务插入到任务列表中,关闭服务器是把任务列表清空。是人工形式的。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |