基本的思路:服務器只負責定時更新緩存。請求進來只須要讀取緩存就能夠了。php
服務器定時執行生成緩存的代碼:mysql
<?php /******************************** * * crontab 定時生成緩存文件 * * * * * * /usr/bin/php /app/crontab.php * 學php的小螞蟻 * 原創博客 http://my.oschina.net/woshixiaomayi/blog * ***************************/ //載入前天寫的db類 //代碼內容請參考 http://my.oschina.net/woshixiaomayi/blog/518295 require_once('./db.php'); //載入以前寫好的文件靜態緩存類 //代碼內容請參考 http://my.oschina.net/woshixiaomayi/blog/518885 require_once('./file.php'); try{ $connect = Db::getInstance()->connect(); }catch(Exception $e){ /* 由於這裏是讓crontab定時執行的,錯誤只能寫到錯誤日誌之中, 這一點必定要注意一下。 */ file_put_contents('./log/'.date('Y-m-d').'.txt', $e->getMessage()); return; } //操做數據庫 $sql="select * from ecm_member limit 3"; $result = mysql_query($sql,$connect); $index_data=array(); while ($row = mysql_fetch_assoc($result)) { $index_data[] = $row; } //實例化靜態文件緩存類,獲得數據就緩存,沒有則寫入日誌 $file = new file(); if($index_data){ $file->cacheData('index_page',$index_data); }else{ file_put_contents('./log/'.date('Y-m-d').'.txt', '沒有獲取數據'); } ?>
請求進來,直接將crontab生成的緩存發送給用戶便可:sql
<?php /************************************ * * 調用crontab定時生成的緩存數據 * 學php的小螞蟻 * 博客 http://my.oschina.net/woshixiaomayi/blog * ******************************/ //載入以前寫好的接口響應類 //代碼內容請參考 http://my.oschina.net/woshixiaomayi/blog/517384 require_once('./response.php'); //載入以前寫好的接口響應類 //代碼內容請參考 http://my.oschina.net/woshixiaomayi/blog/518885 require_once('./file.php'); //有訪問進來,讀取緩存,crontab會定時更新緩存,因此直接使用就好了 $file = new File(); $data = $file -> cacheData('index_page'); if($data){ return Response::show(200,'數據返回成功',$data); }else{ return Response::show(400,'數據返回失敗'); } ?>
這個思路上也比較簡單,APP接口實例到這裏接學習結束了。 b( ̄▽ ̄)d 加油!
數據庫