首先我們先了解一下Crontab命令,最后再給大家介紹如何應用到Thinkphp.如果你已經(jīng)了解過Crontab命令萧诫,可以拉到最后看如何應用到Thinkphp
安裝crontab:
yum install crontabs
關(guān)于cron的一些命令:
/sbin/service crond start//啟動服務(wù)
/sbin/service crond stop//關(guān)閉服務(wù)
/sbin/service crond restart//重啟服務(wù)
/sbin/service crond reload//重新載入配置
查看crontab服務(wù)狀態(tài):service crond status
手動啟動crontab服務(wù):service crond start
查看crontab服務(wù)是否已設(shè)置為開機啟動斥难,執(zhí)行命令:ntsysv
加入開機自動啟動:chkconfig–level35crond on
crontab命令介紹
功能說明:設(shè)置計時器。
語 法:crontab[-u<用戶名稱>][配置文件]或crontab[-u<用戶名稱>][-elr]
補充說明:cron是一個常駐服務(wù)帘饶,它提供計時器的功能哑诊,讓用戶在特定的時間得以執(zhí)行預設(shè)的指令或程序。只要用戶會編輯計時器的配置文件及刻,就可以使用計時器的功能镀裤。其配置文件格式如下:
MinuteHourDayMonthDayOFWeekCommand
參 數(shù):
-e編輯該用戶的計時器設(shè)置。
-l列出該用戶的計時器設(shè)置缴饭。
-r刪除該用戶的計時器設(shè)置暑劝。
-u<用戶名稱>指定要設(shè)定計時器的用戶名稱。
crontab格式
基本格式:
** * * *command
分 時 日 月 周 命令
第1列表示分鐘1~59每分鐘用*或者*/1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
# Use the hash sign to prefix a comment
# +—————- minute (0 – 59)
# | +————- hour (0 – 23)
# | | +———- day of month (1 – 31)
# | | | +——- month (1 – 12)
# | | | | +—- day of week (0 – 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed
crontab文件的一些例子:
3021***/etc/init.d/nginx restart
每晚的21:30重啟nginx颗搂。
4541,10,22**/etc/init.d/nginx restart
每月1担猛、10、22日的4:45重啟nginx丢氢。
101**6,0/etc/init.d/nginx restart
每周六傅联、周日的1:10重啟nginx。
0,3018-23***/etc/init.d/nginx restart
每天18:00至23:00之間每隔30分鐘重啟nginx疚察。
023**6/etc/init.d/nginx restart
每星期六的11:00pm重啟nginx蒸走。
**/1 * * * /etc/init.d/nginx restart
每一小時重啟nginx
*23-7/1***/etc/init.d/nginx restart
晚上11點到早上7點之間,每隔一小時重啟nginx
0114*mon-wed/etc/init.d/nginx restart
每月的4號與每周一到周三的11點重啟nginx
041jan*/etc/init.d/nginx restart
一月一號的4點重啟nginx
*/30 * * * * /usr/sbin/ntpdate210.72.145.20
每半小時同步一下時間
應用到thinkphp
首先你得把要定時執(zhí)行的功能代碼寫到Action中貌嫡≡芈担或者可以用URL訪問之后可以執(zhí)行也行。
例如我把定時每天遍歷訂單是否有成交額的更新代碼放在Order/update_status下衅枫。
而我的項目訪問地址是www.jieqinwang.com即:這個功能的代碼執(zhí)行路徑為:http://www.jieqinwang.com/XXX/xxx
得到這個路徑之后就可以去liunx去配置cron了。
crontab-e進入任務(wù)列表朗伶。
按下I鍵進入編輯模式弦撩,然后添加一條任務(wù)。
比如我想每天中午12點執(zhí)行一次我剛剛寫的那段代碼
就添加新的一行012***curl http://www.jieqinwang.com/XXX/xxx
然后按Esc鍵退出編輯模式论皆,再輸入:wq回車益楼。保存退出。
這樣我們就添加了一個定時任務(wù)点晴「蟹铮可以利用crontab-l來查看任務(wù)列表是否已經(jīng)含有。
最后一步粒督,因為這樣添加進行有可能不會立即生效陪竿。我們重啟一下cron服務(wù)就可以了。
重啟服務(wù)命令:/sbin/service crond restart
大功告成屠橄!如果還有哪里不明白的地方可以發(fā)表評論族跛,我會盡快回復的闰挡。