详解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 各种应用乱码问题的解决方法
May 09 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
Sep 20 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
thinkphp的CURD和查询方式介绍
Dec 19 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
php实现点击可刷新验证码
Nov 07 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
laravel中的一些简单实用功能
Nov 03 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
Oct 18 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
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
使用PDB模式调试Python程序介绍
2015/04/05 Python
浅谈Python中函数的参数传递
2016/06/21 Python
python实现最长公共子序列
2018/05/22 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
python的flask框架难学吗
2020/07/31 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
python re的findall和finditer的区别详解
2020/11/15 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
代办委托书怎样写
2014/04/08 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
2015年度学校应急管理工作总结
2015/10/22 职场文书
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python