首頁  >  文章  >  後端開發  >  詳解PHP實現執行定時任務

詳解PHP實現執行定時任務

WBOY
WBOY原創
2016-07-29 09:09:301105瀏覽

PHP在這方面應該說是比較弱,如果只用php去實現可以如下:

<&#63;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);
 
&#63;>

但是當我執行腳本的時候,即使我關閉了瀏覽器,我根本就沒法去停止這段程序了,所以你需要一個執行腳本的開關,你可以用外部文件引入的方法來實現,在while循環的時候,include開關變數即可。那麼就可以這樣實現:
建立外部引入變數檔案switch.php  內容如下:

<&#63;php
return 1;//1执行脚本 0退出执行脚本
&#63;>

改良腳本如下:

<&#63;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();
 
&#63;>

這個腳本只是測試可行,具體效率應該不高,對於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教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn