php计划任务(定时执行函数详解)

本次运用php完成计划任务主要运用了ignore_user_abort()set_time_limit(0)sleep()这三个函数。

详细的代码如下:

‘;

sleep($interval);//等待5s

}while(true);

//办法2—sleep守时履行

require_once’./curlClass.php’;//引入文件

$curl=newhttpCurl(‘www.phpernote.com’);//实例化

$stime=$curl->getmicrotime();

for($i=0;$i<=10;$i++){

echo’测试’.time().’

‘;

sleep($interval);//等待5s

}

ob_flush();

flush();

$etime=$curl->getmicrotime();

echo’

‘;

echoround(($etime-stime),4);//程序履行时间

在详细的完成过程中个人感觉PHP守时履行任务的功率并不高,主张关于守时履行任务的作业还是交给shell来做吧,相对来说,这个办法完成的太过牵强,而shell是专业级别的了。
图片[1]-php计划任务(定时执行函数详解)-宏启网络科技丨崇尚专注-追求极致,php定时执行函数详解,一、windows方案使命

1、写一个PHP程序,命名为test.php,内容如下所示

$fp=fopen(“test.txt”,”a+”);

fwrite($fp,date(“Y-m-dH:i:s”).”成功成功了!\n”);

fclose($fp);

?>

程序大胆地写,什么include\require尽管用,都没问题

2、新建Bat文件,命名为test.bat,内容如下所示:

1

D:\php\php.exe-qD:\website\test.php

3、建立WINDOWS方案使命:

开始–>控制面板–>使命方案–>添加使命方案

浏览文件夹挑选上面的bat文件

设置时间和密码(登陆WINDOWS的)

保存即可了。

4、over!能够右键方案使命点“运转”试试

二、linux的脚本完成

一、在Crontab中运用PHP履行脚本

就像在Crontab中调用一般的shell脚本相同(具体Crontab用法),运用PHP程序来调用PHP脚本。

每一小时履行myscript.php如下:

#crontab-e

00****/usr/local/bin/php/home/john/myscript.php

/usr/local/bin/php为PHP程序的途径。

二、在Crontab中运用URL履行脚本

假如你的PHP脚本能够通过URL触发,你能够运用lynx或curl或wget来装备你的Crontab。

下面的比如是运用Lynx文本浏览器拜访URL来每小时履行PHP脚本。Lynx文本浏览器默许运用对话方式打开URL。但是,像下面的,我在lynx命令行中运用-dump选项来把URL的输出转换来规范输出。

00****lynx-dumphttp:

//www.centos.bz/myscript.php

下面的比如是运用CURL拜访URL来每5分履行PHP脚本。Curl默许在规范输出显现输出。运用”curl-o”选项,你也能够把脚本的输出转储到临时文件。

*/5****/usr/bin/curl-otemp.txthttp:

//www.centos.bz/myscript.php

下面的比如是运用WGET拜访URL来每10分履行PHP脚本。-q选项表明安静形式。”-Otemp.txt”表明输出会发送到临时文件

*/10****/usr/bin/wget-q-Otemp.txthttp:

//www.centos.bz/myscript.php

三、PHP完成守时履行方案使命

运用php让浏览器改写需要解决几个问题

1、PHP脚本履行时间约束,默许的是30m解决办法:set_time_limit();或者修正PHP.ini设置max_execution_time时间(不引荐)

2、假如客户端浏览器封闭,程序可能就被逼停止,解决办法:ignore_user_abort即使封闭页面仍然正常履行

3、假如程序一向履行很有可能会耗费大量的资源,解决办法运用sleep运用程序休眠一会,然后在履行PHP守时履行的代码

ignore_user_abort();//关掉浏览器,PHP脚本也能够继续履行.

set_time_limit(3000);//通过set_time_limit(0)能够让程序无约束的履行下去

$interval=5;//每隔5s运转

//办法1–死循环

do{

echo’测验’.time().’

‘;

sleep($interval);//等候5s

}while(true);

//办法2—sleep守时履行

require_once’./curlClass.php’;//引入文件

$curl=newhttpCurl();//实例化

$stime=$curl->getmicrotime();

for($i=0;$i<=10;$i++){

echo’测验’.time().’

‘;

sleep($interval);//等候5s

}

ob_flush();

flush();

$etime=$curl->getmicrotime();

echo’

‘;

echoround(($etime-stime),4);//程序履行时间

测验的时候发现这个效率并不是很高

© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏 分享
评论 抢沙发

请登录后发表评论