详解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.ini实现Mysql导入数据库文件最大限制的修改方法
Dec 11 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
解析数组非数字键名引号的必要性
Aug 09 PHP
php网站地图生成类示例
Jan 13 PHP
php检测iis环境是否支持htaccess的方法
Feb 18 PHP
php获取一个变量的名字的方法
Sep 05 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 PHP
浅谈php常用的7大框架的优缺点
Jul 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生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
列举Python中吸引人的一些特性
2015/04/09 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
numpy中索引和切片详解
2017/12/15 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
3分钟学会一个Python小技巧
2018/11/23 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
毕业生求职简历的自我评价
2013/10/07 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
城南旧事观后感
2015/06/11 职场文书
公司管理建议书
2015/09/14 职场文书
初中思品教学反思
2016/02/20 职场文书
创业不要错过,这4种餐饮新模式
2019/07/18 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL