摘要:本身是沒有定時功能的,也不能多線程。服務器上安裝了,就可以執行文件,無論是否安裝了或這樣的服務器環境軟件。而中,使用命令行,用來定時任務,又是絕佳的選擇,而且也是效率最高的選擇。首先,進入命令行模式。
PHP本身是沒有定時功能的,PHP也不能多線程。PHP的定時任務功能必須通過和其他工具結合才能實現,例如WordPress內置了wp-cron的功能,很厲害。本文,我們就來深入的解析幾種常見的php定時任務的思路。
Linux服務器上使用CronTab定時執行php
我們先從相對比較復雜的服務器執行php談起。服務器上安裝了php,就可以執行php文件,無論是否安裝了nginx或Apache這樣的服務器環境軟件。而Linux中,使用命令行,用CronTab來定時任務,又是絕佳的選擇,而且也是效率最高的選擇。
首先,進入命令行模式。作為服務器的linux一般都默認進入命令行模式的,當然,我們管理服務器也一般通過putty等工具遠程連接到服務器,為了方便,我們用root用戶登錄。在命令行中鍵入:
crontab -e
之后就會打開一個文件,并且是非編輯狀態,則是vi的編輯界面,通過敲鍵盤上的i,進入編輯模式,就可以編輯內容。這個文件中的每一行就是一個定時任務,我們新建一行,就是新建一條定時任務(當然是指這一行內按照一定的格式進行書寫)。我們現在來舉個例子,增加一行,內容如下:
00 lynx -dump https://www.yourdomain.com/sc...
這是什么意思呢?實際上上面這一行由兩部分組成,前面一部分是時間,后面一部分是操作內容。例如上面這個,
00
就是指當當前時間的分鐘數為00時,執行該定時任務。時間部分由5個時間參數組成,分別是:
分 時 日 月 周
第1列表示分鐘1~59 每分鐘用或者 /1表示,/n表示每n分鐘,例如/8就是每8分鐘的意思,下面也是類推
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
整個句子的后面部分就是操作的具體內容。
lynx -dump https://www.yourdomain.com/sc...
意思就是說通過lynx訪問這個url。我們在使用中主要用到lynx、curl、wget來實現對url的遠程訪問,而如果要提高效率,直接用php去執行本地php文件是最佳選擇,例如:
00 /2 /usr/local/bin/php /home/www/script.php
這條語句就可以在每2小時的0分鐘,通過linux內部php環境執行script.php,注意,這里可不是通過url訪問,通過服務器環境來執行哦,而是直接執行,因為繞過了服務器環境,所以效率當然要高很多。
好了,已經添加了幾條需要的定時任務了吧。點擊鍵盤上的Esc鍵,輸入“:wq”回車,這樣就保存了設置的定時任務,屏幕上也能看到提示創建了新的定時任務。接下來就是好好寫你的script.php了。
關于CronTab的更多用法這里就不介紹了,如果你想更靈活的使用這個定時任務功能,應該自己再去深入學習一下crontab。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22781.html
閱讀 854·2023-04-25 23:59
閱讀 3751·2021-10-08 10:04
閱讀 1688·2019-08-30 14:05
閱讀 1021·2019-08-30 13:58
閱讀 497·2019-08-29 18:41
閱讀 1133·2019-08-29 17:15
閱讀 2326·2019-08-29 14:13
閱讀 2751·2019-08-29 13:27