phpruntime
『壹』 php如何實現定時任務,php定時任務方法,最佳
PHP製作定時任務(也稱計劃任務)的方法,大概分為2種:
現在基本所有的PHP框架,如:ThinkPHP,Yii,Laravel等等;它們都是單入口的形式,也就是說所有的請求都集合到index.php中,然後再由框架核心來根據請求參數的不同來分配到不同的控制器當中。基於單入口的形式,那麼就可以做基於行為(例如TP3.2)或者說基於事件的定時任務。
系統自動的定時任務,比如Linux的crontab,windows的計劃任務等。
兩中方法各有所長各有所短
基於事件:這種利用的是框架本身提供的一些行為來實現,優點是:不需要特殊配置,只要項目能跑起來,那麼定時任務也能執行。缺點是:靈活性比較差,必須要藉助框架實現。
基於系統:基於操作系統來實現,優點是:靈活性很高,而且可控性也很好。缺點是:需要特殊配置,專業要求性比較強。
具體要使用哪種方法,可以依據自己的能力和項目需要來選擇。最後附上TP3.2的定時任務配置,這個只需要配置就可以,如果想查看具體實現原理,可以查看/ThinkPHP/Library/Behavior/CronRunBehavior.class.php
第一步:/Application/Common/Conf目錄下新建兩個文件:
分別如:
/Application/Common/Conf/tags.php
/Application/Common/Conf/crons.php
1)新建tags.php,編輯內容如下:
returnarray(
'app_end'=>array('BehaviorCronRunBehavior'),
);
2)新建crons.php,編輯內容如下:
returnarray(
'cron_1'=>array('myplan',1),
);
第二步:/Application/目錄下新建Cron文件夾,裡面新建文件myplan.php文件
路徑如:/Application/Cron/myplan.php
編輯內容如下:
echo11111;
查看是否運行成功,最簡單的方法是查看/Application/Runtime/~crons.php,這個文件是否存在。
『貳』 thinkphp中的runtime是什麼問價
編譯緩存的基礎原理是第一次運行的時候把核心需要載入的文件去掉空白和注釋後合並到一個文件中,第二次運行的時候就直接載入編譯緩存而無需載入眾多的核心文件。當第二次執行的時候就會根據當前的應用模式直接載入編譯過的緩存文件,從而省去很多IO開銷,加快執行速度。
項目編譯機制對運行沒有任何影響,預編譯機制只會執行一次,因此無論在預編譯過程中做了多少復雜的操作,對後面的執行沒有任何效率的缺失。
編譯緩存文件默認生成在應用目錄的Runtime目錄下面,我們可以在Application/Runtime目錄下面看到有一個common~runtime.php文件,這個就是普通模式的編譯緩存文件。如果你當前運行在其他的應用模式下面,那麼編譯緩存文件就是:應用模式~runtime.php
例如,如果你當前用的是SAE模式,那麼生成的編譯緩存文件則會變成sae~runtime.php。
普通模式的編譯緩存的內容包括:系統函數庫、系統基礎核心類庫、核心行為類庫、項目函數文件,當然這些是可以改變的。
『叄』 ThinkPHP,刪了幾回~runtime.php以後不在出現了……
~runtime.php是TP的編譯緩存文件,是ThinkPhp自動進行的工作。一般來說,這個文件可以直接刪除,並不影響項目的運行。
編譯緩存文件默認生成在項目的Runtime目錄下面,我們可以在App/Runtime目錄下面看到有一個~runtime.php文件,這個就是編譯緩存文件。
如果你使用了模式擴展的話,編譯緩存文件名稱可能會有所變化,例如,如果你當前用的是REST模式,那麼生成的編譯緩存文件則會變成~rest_runtime.php。
注意:環境改變後需要刪除編譯緩存文件,也就是說你不能把本地生成的編譯緩存拷貝到伺服器或者其他環境直接使用。
『肆』 thinkphp框架刪除了runtime文件夾之後,怎麼還是沒刪除緩存呢
thinkphp默認生成的緩存是在runtime文件夾里,要是還是有緩存有二種可能:
一:你的瀏覽器緩存;
二:配置文件修改緩存目錄到其他文件夾;