详解PHP实现执行定时任务

5年以前  |  阅读数:552 次  |  编程语言:PHP 

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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
贪吃蛇
文件下载
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例