当前位置:首页 > PHP教程 > php高级应用 > 列表

详解PHP实现执行定时任务

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-30 20:39:49 浏览: 评论:0 

这篇文章主要介绍了PHP实现执行定时任务的具体实现代码,需要的朋友可以参考下,PHP在这方面应该说是比较弱,如果只用php去实现可以如下:

  1. <?php 
  2.  ignore_user_abort();//关闭浏览器后,继续执行php代码 
  3.  set_time_limit(0);//程序执行时间无限制 
  4.  $sleep_time = 1;//多长时间执行一次 
  5.  do
  6.  $fp = fopen('test.txt','a+'); 
  7.  fwrite($fp,"这是一个php博客:phpddt.com \n"); 
  8.  fclose($fp); 
  9.  sleep($sleep_time); 
  10.  }while(true); 
  11.    
  12. ?> 

但是当我执行脚本的时候,即使我关闭了浏览器,我根本就没法去停止这段程序了,所以你需要一个执行脚本的开关,你可以用外部文件引入的方法来实现,在while循环的时候,include开关变量即可。那么就可以这样实现:

建立外部引入变量文件 switch.php  内容如下:

  1. <?php 
  2. return 1;//1执行脚本 0退出执行脚本 
  3. ?> 

改良脚本如下:

  1. <?php 
  2.  ignore_user_abort();//关闭浏览器后,继续执行php代码 
  3.  set_time_limit(0);//程序执行时间无限制 
  4.  $sleep_time = 5;//多长时间执行一次 
  5.  $switch = include 'switch.php'
  6.  while($switch){ 
  7.  $switch = include 'switch.php'
  8.  $fp = fopen('test.txt','a+'); 
  9.  fwrite($fp,"这是一个php博客:phpddt.com $switch \n"); 
  10.  fclose($fp); 
  11.  sleep($sleep_time); 
  12.  } 
  13.  exit(); 
  14.    
  15. ?> 

这个脚本只是测试可行,具体效率应该不高,对于lamp,你完全可以使用crontab 来实现,再补充一段小代码:

  1. ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. 
  2. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 
  3. $interval=60*30;// 每隔半小时运行 
  4. do
  5.   //这里是你要执行的代码   
  6.   sleep($interval);// 等待5分钟 
  7. }while(true); 

关于PHP定时执行任务的实现就为大家介绍这么多,之后还有相关文章为大家分享,不要错过。

Tags: PHP执行定时任务

分享到:

相关文章