虛擬空間PHP執行計畫任務的總結

2021-09-25 10:56:32 字數 1156 閱讀 6201

一直用的是阿里雲共享虛擬主機,挺穩定的管理介面ui也還可以,最近需要做乙個定時執行的功能,需求是每天定時執行一段**塊。

一開始我想到的是用sleep()函式實現這個功能:

ignore_user_abort();//關掉瀏覽器後指令碼繼續執行

set_time_limit(0);//設定指令碼執行時間無上限

dowhile(true)

在本地mamp環境執行沒問題,好,趕緊上傳看看行不行,結果上傳後執行程式發現一秒執行了n多次,除錯半天後發現是阿里雲虛機禁用了sleep()函式,嘗試usleep()函式,結果還是被禁用了(譴責阿里雲居然沒有任何提示)。

後來花了幾十塊錢公升級成了雲獨享主機,結果多了幾個雞肋的功能同時問題還沒解決,這波血虧!

轉念一想,那我不用休眠函式了,既然他一直執行,那就讓他一直執行下去吧!程式一直判斷時間,然後在確定的時間點執行

ignore_user_abort();//關掉瀏覽器後指令碼繼續執行

set_time_limit(0);//設定指令碼執行時間無上限

$interval=3600*24;

$tagtime=time()+$interval;

do}while(true)

結果第二天發現程式掛了,難道是阿里雲把程式殺掉了或者php記憶體溢位嗎,後來把間隔時間改為5分鐘,改為60分鐘乃至2小時程式都可以正常間隔執行,直到程式執行六個半小時以後自動被殺死,後來在上面的程式中加了flush()和ob_flush()函式清理php快取還是沒用,阿里雲實錘了!我頹了

後來我腦洞大開,乙個程式可以執行6h+,那我在這個程式結束前喚起另乙個程式不就行了嗎?也就是兩個php檔案相互喚醒,用header()函式+exit()函式,確實能成功喚醒,但是當我關閉瀏覽器時,兩個程式都停止了,也就是ignore_user_abort()函式失效了,至此我徹底放棄了阿里雲虛機,通過萬能的小度小度,發現部分美國使用cpanel控制面板的虛機可以執行計畫任務,遂放棄了阿里雲,去新開了乙個虛機,**比阿里雲便宜。

裡面有cron作業使用很方便,定時任務穩定準時,還有執行結果郵件通知功能,至此問題解決啦!再次感嘆一下,店大欺客啊

PHP執行計畫任務

在linux的終端下實現守護程序,可以使用crontab來計畫php指令碼執行。crontab命令的功能是在一定的時間間隔排程一些命令的執行。crontab 使用方法 crontab e l r 檔名 e 編輯任務 l 顯示任務資訊 r 刪除定時執行任務資訊 crontab的格式 command 分...

PHP定時執行計畫任務

摘要 php不支援多執行緒,有時候處理問題不是那麼爽,今天談論一下php定時執行的方法 1 windows 的計畫任務 2 linux的指令碼程式 3 讓web瀏覽器定時重新整理 php很少在win伺服器上跑,具體實現也不再深究,看網上實現的原理大概是寫bat指令碼,然後讓window任務新增執行這...

PHP定時執行計畫任務

原文 php定時執行計畫任務 摘要 php不支援多執行緒,有時候處理問題不是那麼爽,今天談論一下php定時執行的方法 1 windows 的計畫任務 2 linux的指令碼程式 3 讓web瀏覽器定時重新整理 php很少在win伺服器上跑,具體實現也不再深究,看網上實現的原理大概是寫bat指令碼,然...