Oct
6
在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)
本身就可以解决自动执行问题了。
*/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
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!