PHP定時執行的三種方式實現

2021-09-20 23:38:10 字數 2346 閱讀 2668

1、windows 的計畫任務

2、linux的指令碼程式

3、讓web瀏覽器定時重新整理

php很少在win伺服器上跑,具體實現也不再深究,看網上實現的原理大概是寫bat指令碼,然後讓window任務新增執行這個bat指令碼:

在網上找了些windows執行php的計畫任務的方法,有乙個寫得很全,可惜在我這竟然沒通過。最後不得不綜合各門派的方法,才能在我這執行成功。

1、寫乙個php程式,命名為test.php,內容如下所示:

<?

$fp= fopen("

test.txt", 

"a+")

; fwrite

($fp

, date("

y-m-d h:i:s")

. "成功成功了!\n"

);fclose

($fp);

?>

程式大膽地寫,什麼include\require儘管用,都沒問題

2、新建bat檔案,命名為test.bat,內容如下所示:d

:\php

\php

.exe-q

d:\website

\test

.php

//相應目錄自己改上

3、建立windows計畫任務:

開始–>控制面板–>任務計畫–>新增任務計畫

瀏覽資料夾選擇上面的bat檔案

設定時間和密碼(登陸windows的)

儲存即可了。

4、over! 可以右鍵計畫任務點「執行」試試

這裡主要使用到crontab這個命令,

使用方式 :

crontab

filecrontab[-

uuser][

-uuser]

說明 :

crontab 是用來讓使用者在固定時間或固定間隔執行程式之用

使用crontab寫shell指令碼,然後讓php呼叫shell,這個是利用linux的特性,應該還不算php自身語言的特性

我們的php程式有時候需要定時執行,我們可以使用ignore_user_abort函式或是在頁面放置js讓使用者幫我們實現。但這兩種方法都不太可靠,不穩定。我們可以借助linux的crontab工具來穩定可靠地觸發php執行任務。

下面介紹crontab的兩種方法。

一、在crontab中使用php執行指令碼

就像在crontab中呼叫普通的shell指令碼一樣(具體crontab用法),使用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的輸出轉換來標準輸出。

:下面的例子是使用curl訪問url來每5分執行php指令碼。curl預設在標準輸出顯示輸出。使用」curl -o」選項,你也可以把指令碼的輸出轉儲到臨時檔案。*/5

:下面的例子是使用wget訪問url來每10分執行php指令碼。-q選項表示安靜模式。」-o temp.txt」表示輸出會傳送到臨時檔案。

:php指令碼執行時間限制,預設的是30m 解決辦法:set_time_limit();或者修改php.ini 設定max_execution_time時間(不推薦)

如果客戶端瀏覽器關閉,程式可能就被迫終止,解決辦法:ignore_user_abort即使關閉頁面依然正常執行

如果程式一直執行很有可能會消耗大量的資源,解決辦法使用sleep使用程式休眠一會,然後在執行

Python實現定時執行任務的三種方式簡單示例

1.定時任務 import time,os,sched schedule sched.scheduler time.time,time.sleep defperform command cmd,inc os.system cmd print task def timming exe cmd,inc ...

Python實現定時執行任務的三種方式簡單示例

1.定時任務 user bin env python time 201程式設計客棧8 6 7 16 31 author pgidysq file performtasktimer.py 定時執行任務命令 import time,os,sched schedule sched.scheduler ti...

PHP實現定時執行任務的方法

這篇文章主要介紹了php實現定時執行任務的方法,涉及到ignore user abort函式忽略指令碼終止的使用及sleep函式延緩執行等的應用,需要的朋友可以參考下 ignore user abort true 客戶端斷開時忽略指令碼中止 允許指令碼一直執行 set time limit 0 設定...