導航:首頁 > 編程語言 > php執行定時任務

php執行定時任務

發布時間:2025-07-13 02:26:23

php定時執行任務,給個思路

linux 執行腳本得這樣,
把形成圖的代碼,單獨放一個頁面

㈡ php定時執行任務的幾個方法

PHP定時執行的三種方式實現
1、windows 的計劃任務 2、linux的腳本程序 3、讓web瀏覽器定時刷新

具體實現
1、windows計劃任務

PHP很少在win伺服器上跑,具體實現也不再深究,看網上實現的原理大概是寫bat腳本,然後讓window任務添加執行這個bat腳本。
2、linux 的腳本實現
這里主要使用到crontab這個命令
使用方式 :

復制代碼 代碼如下:crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }

說明 :

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

使用crontab寫shell腳本,然後讓PHP調用shell,這個是利用linux的特性,應該還不算PHP自身語言的特性

3、PHP實現定時執行計劃任務
使用php讓瀏覽器刷新需要解決幾個問題
PHP腳本執行時間限制,默認的是30m 解決辦法:set_time_limit();或者修改PHP.ini 設置max_execution_time時間(不推薦)
如果客戶端瀏覽器關閉,程序可能就被迫終止,解決辦法:ignore_user_abort即使關閉頁面依然正常執行
如果程序一直執行很有可能會消耗大量的資源,解決辦法使用sleep使用程序休眠一會,然後在執行
PHP定時執行的代碼:

<?php ignore_user_abort();//關掉瀏覽器,PHP腳本也可以繼續執行. set_time_limit(3000);// 通過set_time_limit(0)可以讓程序無限制的執行下去 $interval=5;// 每隔5s運行 //方法1--死循環 do{ echo '測試'.time().'<br/>'; sleep($interval);// 等待5s }while(true); //方法2---sleep 定時執行 require_once './curlClass.php';//引入文件 $curl = new httpCurl();//實例化 $stime = $curl->getmicrotime(); for($i=0;$i<=10;$i++){ echo '測試'.time().'<br/>'; sleep($interval);// 等待5s } ob_flush(); flush(); $etime = $curl->getmicrotime(); echo '<hr>'; echo round(($etime-stime),4);//程序執行時間
測試的時候發現這個效率並不是很高。

總結:

個人感覺PHP定時執行任務的效率不是很高,建議關於定時執行任務的工作還是交給shell來做吧。

㈢ php定時執行任務怎麼寫

藉助crontab來編寫;

  1. 編寫定時執行腳本(單獨的一個php文件,或者某個方法);

  2. 配置crontab,指定執行路徑地址;

  3. 啟動crontab服務即可。

㈣ ubuntu-linux中定時任務crontab中的php任務無法執行,求可能的原因

在 Ubuntu Linux 中,遇到定時任務 crontab 中的 PHP 任務無法執行的問題時,可以遵循以下步驟排查和解決問題:

首先,檢查定時任務是否正確編輯。確保 crontab 文件中的命令正確,格式為:`* * * * * /usr/bin/php /home/wwwroot/demo/test.php >/var/log/cron.log`。

查看 cron 進程是否存在,可以使用 `ps -ef | grep cron` 命令。如果看到 cron 進程運行,說明定時任務已經開啟。

重啟 cron 服務,使用命令 `/usr/sbin/service cron restart`。如果仍然無法看到輸出在 cron.log 中記錄,或者 20161025.txt 文件中沒有內容,說明 PHP 腳本執行問題可能出現在其他地方。

增加 PHP 腳本執行許可權,使用 `chmod +x test.php`,並驗證 `/usr/bin/php` 的路徑正確。

執行 `which php` 確認 PHP 的安裝路徑。

測試 PHP 腳本在本地是否能正常執行,確認不存在代碼錯誤。

嘗試使用絕對路徑代替相對路徑,修改腳本中的文件路徑。例如:`$name=__DIR__.'/log/20161025.txt';` 應改為符合系統路徑的絕對路徑。

使用 `locate` 命令查找文件,確認文件是否存在於預期位置。

檢查許可權問題,確保執行定時任務的用戶有正確的許可權訪問文件和目錄。

使用 `crontab -l` 確認定時任務已正確添加。

測試輸出是否記錄在日誌文件中,例如通過查看 `/var/log/test.log` 文件驗證。

最後,定位錯誤的關鍵是對比手動執行腳本與通過 crontab 執行時的路徑差異,以及許可權和日誌文件記錄的異同。解決路徑問題後,確認 PHP 腳本能夠正常執行並記錄輸出。

閱讀全文

與php執行定時任務相關的資料

熱點內容
linux小米驅動 瀏覽:460
拆機怎麼看單片機好壞 瀏覽:911
一個完整的演算法應該有哪些特徵 瀏覽:515
未連接上伺服器是什麼意 瀏覽:571
如何壓縮cab 瀏覽:867
央視頻app怎麼樣投屏 瀏覽:851
陌伴app怎麼樣 瀏覽:491
軟體漢化重新編譯 瀏覽:288
甲骨文高級程序員實戰 瀏覽:958
h3c伺服器如何裝系統 瀏覽:576
冰箱壓縮機壞的現象 瀏覽:153
中望cad塊怎麼建立文件夾 瀏覽:58
noargumentjava 瀏覽:222
火車票app如何買下鋪 瀏覽:302
鳥哥的linux私房菜基礎學習篇pdf 瀏覽:710
pdf如何添加文字 瀏覽:565
福建文件加密系統怎麼選 瀏覽:693
App指紋付款在哪裡關閉 瀏覽:58
androidtextview水平居中 瀏覽:382
折紙解壓小玩具自製 瀏覽:867