详解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数组函数序列之array_search()- 按元素值返回键名
Nov 04 PHP
ThinkPHP视图查询详解
Jun 30 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
Jul 24 PHP
php程序总是提示验证码输入有误解决方案
Jan 07 PHP
PHP实现合并discuz用户
Aug 05 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
PHP时间戳和日期相互转换操作实例小结
Dec 18 PHP
解决php写入数据库乱码的问题
Sep 17 PHP
php实现记事本案例
Oct 20 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中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
PHP游戏编程25个脚本代码
2011/02/08 PHP
php实现简单洗牌算法
2013/06/18 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
js 单引号 传递方法
2009/06/22 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
nodejs实现简单的gulp打包
2017/12/21 NodeJs
vue 实现全选全不选的示例代码
2018/03/29 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
python中实现定制类的特殊方法总结
2014/09/28 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
性能服装:HYLETE
2018/08/14 全球购物
英语专业应届生求职信范文
2013/11/15 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js