所以我有一堆數據庫和wordpress查詢來創建排行榜。 查詢數據,計算和更新似乎有很多事情要做,並且確實會降低排行榜顯示頁面的速度。所以我試圖讓查詢和計算只發生在自上次查詢以來超過一個小時。這是到目前爲止我的代碼:只有在自上次運行1小時後才運行PHP代碼
<?php
static $lastQueryTime;
if(!isset($lastQueryTime) || ($now > $lastQueryTime + (60*60))){
$lastQueryTime = $now;
//PHP to run...Querying, calculating, updating
}
?>
我也試過「全局」,而不是「靜」,但既不似乎工作,在查詢總是在頁面加載發生。
您需要將值存儲在PHP之外(即執行運行時)。最可能的選擇是SQL數據庫(MySQL),最快的選項是緩存服務器(Redis),最快的設置將是一個靜態文件(您直接讀/寫)。 – Sam 2014-09-03 20:08:56
'global'和'static'都不會對你有任何好處 - 因爲只要你的PHP腳本需要回答當前的請求,它就會「生活」......在這之後,它就完成了,它的所有變量都消失了。您需要將值存儲在腳本的下一個「實例」可以再次從其中讀取的地方 - 文件,數據庫...... – CBroe 2014-09-03 20:09:52
爲什麼不用'cron'運行腳本? – mario 2014-09-03 20:13:36