e......白高兴了
演员的自我修养
PHP计划任务的一种实现方法

如果由页面执行,设置
<?php
ignore_user_abort(true);
set_time_limit(0);
?>

运用sleep(300)+死循环,
这样就可以实现计划任务了,这个程序里不要有输出,有输出容易中断


现在正在运行的代码,已经一个小时了,没有问题,正在运行中,我通过页面运行的,
今天晚上我把它放到服务器上去,看看能运行几天
[php]
<?php
ignore_user_abort(true);
set_time_limit(0);

while(1){
        $fp  = fopen('time_task.txt',"a+");
        $str = date("Y-m-d h:i:s")."\n";
        fwrite($fp,$str);
        fclose($fp);
        sleep(1800);        //半小时执行一次
}
?>
[/php]

[ 本帖最后由 unspace 于 2007-2-1 01:10 PM 编辑 ]
希望永远能coding下去
我曾经试图使用php在后台连续执行
结果脚本在大约执行了300秒后被apache杀掉了
我后来试图使用curl递归发送请求来模拟客户端连续请求
结果出来n多php.exe进程 内存占用量剧增 系统越来越慢
还没有想到更好的办法之前就使用crontab或者用户触发的方法吧
原帖由 unspace 于 2007-2-1 11:55 AM 发表
PHP计划任务的一种实现方法

如果由页面执行,设置
<?php
ignore_user_abort(true);
set_time_limit(0);
?>

运用sleep(300)+死循环,
这样就可以实现计划任务了,这个程序里不要有输出,有输出容易中 ...
没人访问的话,这代码咋执行?
洗洗更健康.....
原帖由 剑枫 于 2007-2-1 01:21 PM 发表

没人访问的话,这代码咋执行?
计划任务,谁计划的谁执行
最好加到apache的启动脚本里
希望永远能coding下去
原帖由 unspace 于 2007-2-1 11:55 AM 发表
PHP计划任务的一种实现方法

如果由页面执行,设置
<?php
ignore_user_abort(true);
set_time_limit(0);
?>

运用sleep(300)+死循环,
这样就可以实现计划任务了,这个程序里不要有输出,有输出容易中 ...
你的程序测试过没有?
正在测试中,我晚上放到服务器上,运行个一周,看看效果

我现在在本机windows上,CPU内存没有异常,程序正在运行,记的文件没有漏的

2007-02-01 11:52:43
2007-02-01 12:22:43
2007-02-01 12:52:43
2007-02-01 01:22:43
2007-02-01 01:52:43
希望永远能coding下去
原帖由 unspace 于 2007-2-1 02:22 PM 发表
正在测试中,我晚上放到服务器上,运行个一周,看看效果

我现在在本机windows上,CPU内存没有异常,程序正在运行,记的文件没有漏的

2007-02-01 11:52:43
2007-02-01 12:22:43
2007-02-01 12:52:43
2007-02-01 ...
我以前曾经这样写过程序测试结果就是我前面帖子所说的第一种情况
脚本执行了300秒之后被apache杀掉了
顶了 等结果!这注意8错~
已经放到服务器上测试
这次使用命令行的方式

/var/www/php/bin/php test.php&
[php]
<?php
ignore_user_abort(true);
set_time_limit(0);

while(1){
        $fp  = fopen('time_task.txt',"a+");
        $str = date("Y-m-d h:i:s")."\n";
        fwrite($fp,$str);
        fclose($fp);
        echo $str;   //这次有输出
        sleep(1800);    //半小时执行一次
}
?>
[/php]
希望永远能coding下去