后端开发|php教程
php,计划任务,定时执行
后端开发-php教程
我们前文中给大家介绍了php计划任务的实现原理,相信对此小伙伴们都理解了php计划任务的原理,那么我们今天继续给大家介绍一下php如何实现定时执行计划任务!
幽默类网站cms源码,ubuntu配置保存命令,tomcat8添加到服务,爬虫检测大数据,php设置文件上传10g,宁波快速seolzw
A、windows计划任务
群成员管理源码,vscode介绍ppt,黑屏ubuntu,tomcat 监听原理,qt链接sqlite,香港服务器租用哪个好,wordpress分享跳转插件,前端手机UI框架,施密特爬虫,php抠人像,长沙网站seo优化排名公司,化妆培训学校网站源码 下载,网页滚动时的动画效果,商品介绍网页模板,h5 tab切换页面,thinkphp统计数据管理系统,卡尔曼滤波 matlab 程序lzw
1、写一个PHP程序,命名为test.php
,内容如下所示
app 商城源码,vscode写jquery,ubuntu下棋,tomcat显示jsp,sqlite显示所有的表,dz论坛淘宝客返利插件,天眼平台前端采用哪个框架,python写一个爬虫,php video,烟台seo排名技术,动漫456网站,书本翻页效果网页代码,织梦最新免费模板下载lzw
程序大胆地写,什么include\require尽管用,都没问题
2、新建Bat
文件,命名为test.bat,内容如下所示:
D:\php\php.exe -q D:\website\test.php
3、建立WINDOWS计划任务:
开始–>控制面板–>任务计划–>添加任务计划
浏览文件夹选择上面的bat
文件
设置时间和密码(登陆WINDOWS的)
保存即可了。
4、over! 可以右键计划任务点“运行”试试
B、linux 的脚本实现
A、在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程序的路径。
B、在Crontab中使用URL执行脚本
如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来配置你的Crontab。
下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我在lynx命令行中使用-dump
选项来把URL的输出转换来标准输出。
00 * * * * lynx -dump http://www.centos.bz/myscript.php
下面的例子是使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。
*/5 * * * * /usr/bin/curl -o temp.txt http://www.centos.bz/myscript.php
下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件
*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.centos.bz/myscript.php
C、PHP实现定时执行计划任务
使用php让浏览器刷新需要解决几个问题
1、PHP脚本执行时间限制,默认的是30m
解决办法:set_time_limit();
或者修改PHP.ini 设置max_execution_time
时间(不推荐)
2、如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort
即使关闭页面依然正常执行
3、如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep
使用程序休眠一会,然后在执行PHP定时执行的代码
<?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 = new httpCurl();//实例化 $stime = $curl->getmicrotime(); for($i=0;$i<=10;$i++){ echo 测试.time().
; sleep($interval);// 等待5s } ob_flush(); flush(); $etime = $curl->getmicrotime(); echo \; echo round(($etime-stime),4);//程序执行时间
测试的时候发现这个效率并不是很高
总结:
本文通过windows计划任务、Linux的脚本实现,以及php执行定时计划任务的实例,让小伙伴么更为直接的了解php定时执行计划任务,希望对你有所帮助!
php实现计划任务的原理分析
php定时计划任务与持续进程(fsockopen)实例
php 计划任务 检测用户连接状态