Linux中的Crontab實現PHP計劃任務

來源:互聯網
上載者:User

PHP程式有時候需要定時執行,使用Linux的Crontab執行PHP指令碼,完成PHP計劃任務。譬如,微博上用得很多的一款APP應用——皮皮時光機,就是實現定時發送內容的功能。當然PHP中也有ignore_user_abort函數。
但這兩種方法都不太可靠,不穩定。我們可以藉助Linux的Crontab工具來穩定可靠地觸發PHP執行任務。

下面介紹Crontab的兩種方法。

一、在Crontab中使用PHP執行指令碼
就像在Crontab中調用普通的shell指令碼一樣,使用PHP程式來調用PHP指令碼。
每一小時執行myscript.php如下:


# crontab -e
00 * * * * /usr/local/bin/php /home/john/myscript.php/usr/local/bin/php為PHP程式的路徑。

二、在Crontab中使用URL執行指令碼
如果你的PHP指令碼可以通過URL觸發,你可以使用lynx或curl或wget來配置你的Crontab。
下面的例子是使用Lynx文本瀏覽器訪問URL來每小時執行PHP指令碼。Lynx文本瀏覽器預設使用對話方式開啟URL。但是,像下面的,我們在lynx命令列中使用-dump選項來把URL的輸出轉換來標準輸出。


00 * * * * lynx -dump http://www.centos.bz/myscript.php下面的例子是使用CURL訪問URL來每5分執行PHP指令碼。Curl預設在標準輸出顯示輸出。使用”curl -o”選項,你也可以把指令碼的輸出轉儲到臨時檔案。


*/5 * * * * /usr/bin/curl -o temp.txt http://www.centos.bz/myscript.php當然,完成PHP計劃任務的方法比較多Win下面也有計劃任務,方法有很多的,但是比較穩定,也比較不錯的方法基本是都是使用Linux下的這種Crontab。

 

直接在php中做

如果由頁面執行,設定
<?php
ignore_user_abort(true);
set_time_limit(0);
?>

運用sleep(300)+死迴圈,
這樣就可以實現計劃任務了,這個程式裡不要有輸出,有輸出容易中斷

 代碼如下 複製代碼

<?php
ignore_user_abort(true);
set_time_limit(0);

while(1){
    $fp = fopen('time_task.txt',"a+");
    $str = date("Y-m-d h:i:s")."n";
    fwrite($fp,$str);//記錄到time_task.txt文本
    fclose($fp);
    sleep(1800);    //半小時執行一次
}
?>

函數int ignore_user_abort :

從函數名本身,可以解釋為,"忽略使用者的影響"
因為所謂的使用者是指用戶端,即瀏覽器
所以進一步解釋為,"忽略瀏覽器的影響"

那麼影響指的是什麼,影響指的是瀏覽器的關閉和異常

也就是說有這個函數在的php程式,即使在瀏覽器關掉的時候,程式沒有執行完它還會繼續執行,直到執行完

比如說,你有一段代碼需要執行100秒,可是這個時間太長了,一般使用者等不及,在等了60秒的時候受不了就關了
如果這個時候程式也隨之終止,很可能造成資料異常,不一致或是錯誤,你需要程式繼續運行

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.