国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

linux實現php定時執行cron任務詳解

2020-03-22 18:06:57
字體:
來源:轉載
供稿:網友
對于PHP本身并沒有一套解決方案來執行定時任務,不過是借助sleep函數完成的。這種方就是要提前做一些配置,如實現過程:復制代碼 代碼如下:
ignore_user_abort();//關掉瀏覽器,PHP腳本也可以繼續執行.
set_time_limit(0);// 通過set_time_limit(0)可以讓程序無限制的執行下去
$interval=60*30;// 每隔半小時運行
do{
//這里是你要執行的代碼
sleep($interval);// 等待5分鐘
}while(true);
不過關于這種方式我有一些擔心性能方面的問題,不過也是個臨時的方法。本人推薦的方式采用腳本來實現,利用OS本身的定時任務機制,windows上場利用bat腳本。不過本人沒有在window上嘗試過。那我就講講在linux中的實現。如果你的web server是基于linux的,那么可以采用linux下的cron job 來完成。以RedHat5 為例,我們只需要預先要定時執行的邏輯代碼。例如demo.php復制代碼 代碼如下:
?php
echo "Hello";
?
然后是吧php用shell腳本一封裝,在shell腳本中調用demo.php,demo.sh代碼如下:復制代碼 代碼如下:
#!/bin/bash
#if you php install to /usr/local/php/
/usr/local/php/bin/php /home/xx-user/demo.php
完成shell腳本的編寫之后,確保它有足夠的這行權限,例如:/bin/chmod u+x demo.sh.然后配置linux上的cronjob,cronjob是linux上默認安裝的。如果你的任務是需要按小時、天、周、月來執行的話,那么你直接可以將你的demo.sh腳本拷貝到/etc/cron.hourly 、/etc/cron.daily 、/etc/cron.weekly、/etc/cron.monthly 就ok了,這樣就可以完成你的任務了 。如果到某個時間點想移除定時任務,那就從上面這些folder中move到其它地方或者直接刪除掉就ok了。如果你的腳本有特殊的執行時間,例如每個星期的周二,或者是每個月的15號執行。那么你就需要配置屬于你自己的cron job.關于cron的特殊的配置請參考:http://www.pantz.org/software/cron/croninfo.html這里我就按照每天的上午12點到下午的14點鐘之間每2分鐘運行一次這個腳本,那么配置如下(例如demo.sh是位于/tmp 目錄下):首先在linux的命令行中執行crontab -e ,然后把規則輸入到里面:復制代碼 代碼如下:
*/2 12-14 * * * /tmp/demo.sh
帶輸入完成之后按鍵盤上的“Esc”鍵,然后輸入:wq,編輯頁面就退出了。然后你可以用crontab -l 來查看你剛編輯的cron job.到此時特殊的cron 也就完成了。例如你剛才是用linux下的demo賬戶來完成上面的步驟,那么還有一個簡單的方法就是直接可以編輯/var/spool/cron/demo 這個文件,可以直接修改你的cron job. 例如 :vi /var/spool/cron/demo利用OS的方式來管理你的定時任務是很快捷的,而且不用你擔心性能的問題,除非你的腳本本身存在一些問題。這樣的方式易于維護,可以修改定時執行的計劃,也可以輕松的移除和新增其它的定時任務。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 包头市| 龙江县| 永吉县| 绥江县| 砀山县| 济源市| 林口县| 龙陵县| 曲麻莱县| 灵宝市| 广河县| 扎囊县| 华池县| 东城区| 阜新市| 济源市| 灵寿县| 北辰区| 中卫市| 泗水县| 巴林左旗| 蒙自县| 获嘉县| 板桥市| 莱西市| 石渠县| 济阳县| 郓城县| 资中县| 马公市| 凯里市| 河南省| 洪泽县| 雷州市| 辉南县| 乡宁县| 闽侯县| 丹棱县| 泸定县| 赤壁市| 大埔县|