首頁  >  文章  >  後端開發  >  如何使PHP定時執行任務(附程式碼)

如何使PHP定時執行任務(附程式碼)

PHPz
PHPz轉載
2016-07-29 08:33:281398瀏覽

這篇文章主要介紹如何使PHP定時執行任務,有一定的參考價值,有興趣的朋友可以看看,希望對你有幫助!

使用PHP定時執行某些任務的話, 可以有以下兩個方法:

1. linux下crontab, windows下規劃任務

2. 用php的相關函數

<span style="font-size: 14px;">set_time_limit(0);<br>ignore_user_abort(true);<br>//这里写一个死循环<br></span>

第一個方法是最常見的, 如果php伺服器上沒有權限去crontab, 也可以找一個自己的機器定期crontab去請求伺服器

第二種比較不靠譜, Apache重啟了就得重新訪問,  fastcgi倒是會好一點。

範例:建立index.php和test.txt,功能是往test.txt裡每秒覆蓋寫一個數字,該數字遞增。 index.php程式碼如下:

<span style="font-size: 14px;"><?php<br>ignore_user_abort(true);<br>$num=0;<br>set_time_limit(0);<br>//ini_set('max_execution_time',0);   用这句也行,效果和set_time_limit(0)一样<br>do{<br>	file_put_contents('./test.txt',$num);<br>	$num++;<br>	sleep(1);<br>}while(true);<br></span>

關閉瀏覽器後,發現仍能執行腳本,該數字依舊遞增。

原因是這關鍵的兩個函數在起作用:

ignore_user_abort(true)無論客戶端是否關閉瀏覽器,下面的代碼都將得到執行。

set_time_limit(0) 取消php檔案的執行時間,如果沒有這個函數的話,預設php的執行時間是30秒,也就是說30秒後,這個檔案就say goodbay了。

如果不用這兩個函數,則需要修改php.ini,找到max_execution_time配置項,將30改為0,設定為0就是永不過期。再重啟伺服器即可。

更多相關教學請上   php程式設計從入門到精通全套影片教學

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除