Oct 6

Php在Win下自动执行计划任务的思考 阴

, 08/10/06 15:34 , 技术开发 » PHP , 评论(0) , 引用(0) , 阅读(3316) , Via 本站原创 | |
在unix环境下,用crontab可以很好的执行计划任务,及php运行,如:
*/3 * * * * /usr/local/bin/php /home/zhoz/zhoz.php,复习一下语法。
* * * * * [command line]
1 2 3 4 5

日時指定方法 左から †
何番目  単位  指定方法  例  
1  分  0から59  */15  
2  時  0から23  0-23  
3  日(月)  1から31  1-20  
4  月  1から12(or names)  1,6,12  
5  日曜~土曜  0から6  0-6
还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。
Arrayphp只能被用户触发后调用,但执行后会自动退出内存,因此就没有办法准确的定时处理。而国内很多主机是win环境,这样就没办法执行这种脚本了。
目前,如果需要用PHP定时执行某些任务的话,只想出了以下两个方法:
1、从win98年代一直至今,而且是从未用过的「计划任务」
单击“开始”按钮,然后依次选择“程序”→“附件”→“系统工具”→“任务计划”(或者是“设置”→“控制面板”→“任务计划”),启动Windows的任务计划管理程序。
然后自己往这里随便添加任务吧。

2、写个PHP来后台执行:
保存位置:E:\eclipse\workspace\zhoz\src\zhoz.php

执行日志如下,很漂亮完全在掌握中:
[06-Oct-2008 15:25:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:26:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:27:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:28:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:29:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:30:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:31:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:32:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:33:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:34:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:35:30] zhoz.php is do !!!!----------
[06-Oct-2008 15:36:30] zhoz.php is do !!!!----------

但这里有个缺点,需要先运行一下这个PHP文件,如通过url运行:http://www.zhoz.com/zhoz.php
这里只要执行一次就可以了,然后关闭页面。
另外,当Apache/IIS重启后,这个脚本就不会执行了。

为此,我又想到了另外一个方法:
在cmd下运行:
C:\Documents and Settings\zhoz>D:\AppServ\php5\php-win.exe  -c "c:\windows\php.ini" E:\eclipse\workspace\zhoz\src\zhoz.php
(这里也只要运行一次,运行多了时间会缩短运行的。)
这样的话,即使怎么重启Apache/IIS这个脚本仍然会运行的。
还有缺点:重启机器或杀死进程php-win.exe,当然它就不能跑了……
这个解决办法,可以添加启动项里作成bat应该是可以完美解决!

补充,如果是单独为了更新mysql的话,就不需要在这里打主意了,MySQL 5.1新特性之事件调度器(Event Scheduler)
本身就可以解决自动执行问题了。

作者:@Everyday NetLog
地址:http://log.zhoz.com/read.php?434
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]