详解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 相关文章推荐
ajax实现无刷新分页(php)
Jul 18 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
九个你必须知道而且又很好用的php函数和特点
Aug 08 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
May 08 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
浅谈php优化需要注意的地方
Nov 27 PHP
php获取系统变量方法小结
May 29 PHP
php生成与读取excel文件
Oct 14 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
php+js实现裁剪任意形状图片
Oct 31 PHP
php生成微信红包数组的方法
Sep 05 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自动更新新闻DIY
2006/10/09 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
图像替换新技术 状态域方法
2010/01/28 Javascript
javascript 面向对象 function类
2010/05/13 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
QML实现圆环颜色选择器
2019/09/25 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
python获取标准北京时间的方法
2015/03/24 Python
Python实现控制台输入密码的方法
2015/05/29 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
介绍一下#error预处理
2015/09/25 面试题
如何做好总经理助理
2013/11/12 职场文书
自荐书封面下载
2013/11/29 职场文书
物理课外活动总结
2014/08/27 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
Spring整合Mybatis的全过程
2021/06/28 Java/Android
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript