详解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版(4)
Oct 09 PHP
一个SQL管理员的web接口
Oct 09 PHP
用PHP的ob_start();控制您的浏览器cache!
Feb 14 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
php Smarty初体验二 获取配置信息
Aug 08 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
PHP基础学习之流程控制的实现分析
Apr 28 PHP
PHP修改session_id示例代码
Jan 08 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
Apr 09 PHP
php类的扩展和继承用法实例
Jun 20 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 26 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
php木马webshell扫描器代码
2012/01/25 PHP
php删除数组元素示例分享
2014/02/17 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
2017/05/25 jQuery
Vue的生命周期操作示例
2019/09/17 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
python3.5 tkinter实现页面跳转
2018/01/30 Python
python+ffmpeg批量去视频开头的方法
2019/01/09 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
python实现超市商品销售管理系统
2019/11/22 Python
python中有关时间日期格式转换问题
2019/12/25 Python
Python-opencv 双线性插值实例
2020/01/17 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
编程输出如下图形
2013/11/24 面试题
本科毕业生专业自荐书范文
2014/02/05 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
教你一步步实现一个简易promise
2021/11/02 Javascript