PHP實現定時任務的幾種方式

來源:互聯網
上載者:User

標籤:log   時間   inux   set   lan   客戶機   ref   usr   nbsp   

關於定時任務,之前以前認識了一種最常用的:crontab定時任務。通過linux的定時任務去實現。今天又認識了一下php實現定時方式的其它方式,總結一下。

一 伺服器定時任務

伺服器定時任務,其實就是unix系統下的crontab實現,具體的設定:Linux定時任務crontab;不過除了直接定時讀取php指令碼的方式,我們還可以用定時調用介面的方式。

運行指令碼時:

*/1 * * * * php /data/www/cron.php  每分鐘執行cron.php

URL方式調用:

lynx方式:*/1 * * * *  lynx -dump http://www.gzpblog.com/cron.php(-dump選項來把URL的輸出轉換來標準輸出)

curl方式:*/1 * * * *  /usr/bin/curl -o temp.txt http://www.gzpblog.com/cron.php(Curl預設在標準輸出顯示輸出。使用 “curl -o” 選項,把指令碼的輸出轉儲到臨時檔案temp.txt)

wget方式:*/1 * * * * /usr/bin/wget -q -O temp.txt http://www.gzpblog.com/cron.php(q 選項表示安靜模式。”-O temp.txt” 表示輸出會發送到臨時檔案。)

以上方式,是將php指令碼放在可以用url訪問的地址地中,比如http://www.gzpblog.com/cron.php,定時調用觸發任務。

二 ignore_user_abort()方式

ignore_user_abort() 函數設定與客戶機斷開是否會終止指令碼的執行。

先使用一個cron.php檔案來控制指令碼的終止,cron.php內容為:

<?phpreturn 1;?>

指令碼php檔案為:

<?phpignore_user_abort();//關掉瀏覽器,PHP指令碼也可以繼續執行.set_time_limit(0);// 通過set_time_limit(0)可以讓程式無限制的執行下去$interval=60*30;// 每隔半小時運行do{$run = include ‘config.php‘;if(!$run) die(‘process abort‘);  //return 0 時, 終止//TODO 該幹啥幹啥sleep($interval);// 等待5分鐘}while(true);

通過改變cron.php的return 0 , 來實現停止程式。但是這種方法,不好記憶體管理。

三  file_get_contents()方式
<?php$time=15;$url="http://".$_SERVER[‘HTTP_HOST‘].$_SERVER[‘REQUEST_URI‘];//TODOsleep($time);file_get_contents($url);?>

php指令碼sleep 一段時間之後通過訪問自身的方式繼續執行,這樣就能保證每個PHP指令碼執行時間不會太長,不受time_out的限制。因為每一次一次迴圈php檔案都是獨立執行,所以這種方法,避免了time_out的限制。 但是最好和上邊一樣 加上控制碼cron.php,以便能夠終止進程。

PHP實現定時任務的幾種方式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.