溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在linux中利用php定時執行cron任務

發布時間:2021-01-25 16:34:42 來源:億速云 閱讀:165 作者:Leah 欄目:開發技術

怎么在linux中利用php定時執行cron任務?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

代碼如下:


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

看完上述內容,你們掌握怎么在linux中利用php定時執行cron任務的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女