當前,定時任務對於乙個**來說,是乙個必要的需求,比如公尺撲部落格的定時發布文章、定時清理垃圾資訊、公尺撲**的定時傳送郵件、傳送簡訊提醒等。
那麼,如果非要php去實現定時任務, 有哪些方法呢?公尺撲部落格本文整理總結了幾種解決方案。
一、 簡單直接不顧後果型
<?phpignore_user_abort();
//關掉瀏覽器,php指令碼也可以繼續執行.
set_time_limit(0); //
通過set_time_limit(0)可以讓程式無限制的執行下去
ini_set('
memory_limit
','1024m
'); //
設定記憶體限制
$interval = 60*30; //
每隔半小時執行
do
while(true
);?>
二、 簡單可控型
<?phpreturn1;
?>cron.php
ignore_user_abort();
//關掉瀏覽器,php指令碼也可以繼續執行.
set_time_limit(0); //
通過set_time_limit(0)可以讓程式無限制的執行下去
$interval = 60*30; //
每隔半小時執行
dowhile(true);
通過改變config.php 的return 0 ,
來實現停止程式,乙個可行的辦法是config.php檔案和某個特殊表單互動,通過html頁面設定一些變數來進行配置
缺點:佔系統資源, 長時間執行,會有一些意想不到的隱患。比如記憶體管理、有人惡意更改配置檔案等
三、 簡單改進型
php指令碼sleep 一段時間之後通過訪問自身的方式繼續執行,就好像接力賽跑一樣..
這樣就能保證每個php指令碼執行時間不會太長,也就不受time_out
的限制了.
因為,每一次一次迴圈php檔案都是獨立執行,所以這種方法避免了time_out
的限制. 但是最好和上邊一樣加上控制**. cofig.php , 以便能夠終止程序.
四、自己整理
ignore_user_abort();//即使client斷開(如關掉瀏覽器),php指令碼也可以繼續執行.
set_time_limit(0);
//執行時間為無限制,php預設的執行時間是30秒,通過set_time_limit(0)可以讓程式無限制的執行下去
瀏覽器視窗關閉
一般的視窗關閉的js如下寫法 window.close 但是呢,chrome,firefox等中有時候會不起作用。改為下面的寫法 window.open about blank self close 或者window.open self close 如果是frame的時候如下寫法 一般 window...
關閉瀏覽器 清除cookie
根據客戶要求使用dedecms v5.6版本,發現了乙個會員登入的bug!看來dedecms也不過如此!首先說說bug所在 在會員登入頁面 member index.php 登入的時候 有效期如果選擇 即時 那麼就永遠也登不上去了!原因簡單的查詢了一下 看到了吧,當 kptime 0 的時候,過期時...
關閉瀏覽器的監聽
需求 關閉瀏覽器時,退出,清除session。在網上找了一段 可是測試的時候有偏差,有時關閉瀏覽器可以退出,有時退出不了。分析後發現,當瀏覽器的視窗大小改變後,網頁的寬度沒有及時跟著變,這個專案沒有做到這一點。document.documentelement.scrollwidth 網頁寬度 doc...