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

2022-07-17 03:48:08 字數 1290 閱讀 4262

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

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

執行指令碼時:

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

url方式呼叫:

lynx方式:*/1 * * * *  lynx -dump 選項來把url的輸出轉換來標準輸出)

curl方式:*/1 * * * *  /usr/bin/curl -o temp.txt 預設在標準輸出顯示輸出。使用 「curl -o」 選項,把指令碼的輸出轉儲到臨時檔案temp.txt)

wget方式:*/1 * * * * /usr/bin/wget -q -o temp.txt 選項表示安靜模式。」-o temp.txt」 表示輸出會傳送到臨時檔案。)

以上方式,是將php指令碼放在可以用url訪問的位址地中,比如定時呼叫觸發任務。

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

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

<?php

return 1;

?>

指令碼php檔案為:

<?php

ignore_user_abort();//關掉瀏覽器,php指令碼也可以繼續執行.

set_time_limit(0);// 通過set_time_limit(0)可以讓程式無限制的執行下去

$interval=60*30;// 每隔半小時執行

dowhile(true);

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

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

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

android裡有時需要定時迴圈執行某段 或者需要在某個時間點執行某段 這個需求大家第一時間會想到timer物件,沒錯,不過我們還有更好的選擇。一 timer 實現定時任務 timer timer void oncreate timer new timer timer.schedule task,1...

定時任務的實現方式

目前本人只用到了三種,所以記錄之 1.用的最多的,實現job類並在spring中配置定時器 jobdetail import org.quartz.job import org.quartz.jobexecutioncontext import org.quartz.jobexecutionexce...

php 實現linux的定時任務

在php學習和工作生活中,經常需要定時去執行任務,一般可以分為純 實現和借助linux的定時任務管理器cron.d或者crontab來實現。1.先來說一下純 是如何實現的。ignore user abort 關閉瀏覽器仍然執行 set time limit 0 讓程式一直執行下去 interval ...