详解PHP实现执行定时任务


Posted in PHP onDecember 21, 2015

PHP在这方面应该说是比较弱,如果只用php去实现可以如下:

<?php
 ignore_user_abort();//关闭浏览器后,继续执行php代码
 set_time_limit(0);//程序执行时间无限制
 $sleep_time = 1;//多长时间执行一次
 do{
 $fp = fopen('test.txt','a+');
 fwrite($fp,"这是一个php博客:phpddt.com \n");
 fclose($fp);
 sleep($sleep_time);
 }while(true);
 
?>

但是当我执行脚本的时候,即使我关闭了浏览器,我根本就没法去停止这段程序了,所以你需要一个执行脚本的开关,你可以用外部文件引入的方法来实现,在while循环的时候,include开关变量即可。那么就可以这样实现:
建立外部引入变量文件 switch.php  内容如下:

<?php
return 1;//1执行脚本 0退出执行脚本
?>

改良脚本如下:

<?php
 ignore_user_abort();//关闭浏览器后,继续执行php代码
 set_time_limit(0);//程序执行时间无限制
 $sleep_time = 5;//多长时间执行一次
 $switch = include 'switch.php';
 while($switch){
 $switch = include 'switch.php';
 $fp = fopen('test.txt','a+');
 fwrite($fp,"这是一个php博客:phpddt.com $switch \n");
 fclose($fp);
 sleep($sleep_time);
 }
 exit();
 
?>

这个脚本只是测试可行,具体效率应该不高,对于lamp,你完全可以使用crontab 来实现。
再补充一段小代码:

ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
  //这里是你要执行的代码  
  sleep($interval);// 等待5分钟
}while(true);

关于PHP定时执行任务的实现就为大家介绍这么多,之后还有相关文章为大家分享,不要错过。

PHP 相关文章推荐
PHP递归调用的小技巧讲解
Feb 19 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
Jun 24 PHP
Yii把CGridView文本框换成下拉框的方法
Dec 03 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
php头像上传预览实例代码
May 02 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
php微信分享到朋友圈、QQ、朋友、微博
Feb 18 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
Dec 21 #PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 #PHP
PHP版本常用的排序算法汇总
Dec 20 #PHP
php封装好的人民币数值转中文大写类
Dec 20 #PHP
使用PHP如何实现高效安全的ftp服务器(一)
Dec 20 #PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 #PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 #PHP
You might like
PHP 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
PHP里的$_GET数组介绍
2019/03/22 PHP
JS 实现双色表格实现代码
2009/11/24 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
javascript工具库代码
2012/03/29 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
详解Python中的join()函数的用法
2015/04/07 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
详解python配置虚拟环境
2019/04/08 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
python从Oracle读取数据生成图表
2020/10/14 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
Java如何获得ResultSet的总行数
2016/09/03 面试题
关于青春的演讲稿500字
2014/08/22 职场文书
2014年财政工作总结
2014/12/10 职场文书
干部培训简讯
2015/07/20 职场文书
运动员代表致辞
2015/07/29 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技