PHP定时执行计划任务的多种方法小结


Posted in PHP onDecember 19, 2011

PHP定时执行的三种方式实现
1、windows 的计划任务
2、linux的脚本程序
3、让web浏览器定时刷新

具体实现

windows计划任务

PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原理大概是写bat脚本,然后让window任务添加执行这个bat脚本,具体可以参考:https://3water.com/article/29134.htm

linux 的脚本实现
这里主要使用到crontab这个命令,

使用方式 :

crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }

说明 :

crontab 是用来让使用者在固定时间或固定间隔执行程式之用

使用crontab写shell脚本,然后让PHP调用shell,这个是利用linux的特性,应该还不算PHP自身语言的特性

可以参看:https://3water.com/article/29136.htm

PHP实现定时执行计划任务
使用php让浏览器刷新需要解决几个问题
PHP脚本执行时间限制,默认的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time时间(不推荐)
如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行
如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行
PHP定时执行的代码:

<?php 
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. 
set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去 
$interval=5;// 每隔5s运行 //方法1--死循环 
do{ 
echo '测试'.time().'<br/>'; 
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().'<br/>'; 
sleep($interval);// 等待5s 
} 
ob_flush(); 
flush(); 
$etime = $curl->getmicrotime(); 
echo '<hr>'; 
echo round(($etime-stime),4);//程序执行时间

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

PHP定时执行计划任务的多种方法小结 
总结:
个人感觉PHP定时执行任务的效率不是很高,建议关于定时执行任务的工作还是交给shell来做吧,比较那才是王道。
ps:那个死循环的方法好像是恶意攻击网站经常使用的方法

PHP 相关文章推荐
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
php读取mysql中文数据出现乱码的解决方法
Aug 16 PHP
php中simplexml_load_string使用实例分享
Feb 13 PHP
php函数实现判断是否移动端访问
Mar 03 PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 PHP
php实现的一段简单概率相关代码
May 30 PHP
Yii2中使用asset压缩js,css文件的方法
Nov 24 PHP
php接口技术实例详解
Dec 07 PHP
PHP连接MySQL数据库并以json格式输出
May 21 PHP
阿里云的WindowsServer2016上部署php+apache
Jul 17 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 PHP
PHP const定义常量及global定义全局常量实例解析
May 28 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
Dec 19 #PHP
php安全配置 如何配置使其更安全
Dec 16 #PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 #PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 #PHP
通达OA公共代码 php常用检测函数
Dec 14 #PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 #PHP
php中日期加减法运算实现代码
Dec 08 #PHP
You might like
php md5下16位和32位的实现代码
2008/04/09 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
Python中多线程thread与threading的实现方法
2014/08/18 Python
python的类方法和静态方法
2014/12/13 Python
连接Python程序与MySQL的教程
2015/04/29 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
农民入党思想汇报
2014/01/03 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
2014离婚协议书范文
2014/09/10 职场文书
黄埔军校观后感
2015/06/10 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
Golang 字符串的常见操作
2022/04/19 Golang