顯示具有 GAE 標籤的文章。 顯示所有文章
顯示具有 GAE 標籤的文章。 顯示所有文章

2009年8月5日 星期三

GAE--使用Memcache Python API

隨著股票看盤程式固定時間間隔要抓取的資料變多
資料回應的時間也越來越慢了,甚至每次程式啟動時都需要等上10幾秒
該是加入Memcache(快取)的時候了
很簡單,只要加入下列幾行code即可
from google.appengine.api import memcache

class getQuote(webapp.RequestHandler):
    def get(self):
       data = memcache.get(stkno_string)
       if data is None:
           data = self.query_for_data()
           #快取將資料保留20秒
           memcache.add(stkno_string, data, 20)
       self.response.out.write(data)

2009年8月2日 星期日

GAE--在 Python 使用 Cron 排程工作

在寫股價看盤軟體時需要上一個營業日的收盤價才能計算漲跌幅
所以必須在開盤前更新最新的收盤價才能算出正確的漲跌幅
這時Google App Engine提供的Cron Service就派上用場了,可以定期設定排程工作,
Cron會在每天的指定時間啟動網址,但還是與一般 HTTP request一樣有時間的限制。

一開始很高興的寫一大堆code撈DataStore的資料,
但是經過幾次request timeout後,只好乖乖的將一些繁雜的工作,
切成好幾分轉給其他的URL負責,讓cron啟動的URL只負責簡單的資料清空的動作
整個程式就可以正常運行了

下列是 cron.yaml 檔案的範例:

cron:
- description: daily update job
url: /tasks/updatedata
schedule: every 24 hours

2009年6月17日 星期三

有關Google App Engine的Datastore

最近在研究GAE Datastore
發覺這真是搞OO的夢幻逸品啊!!!
想當年被EJB、DataModel、OR MAPING等等搞得焦頭爛額時
掙扎於理想(OO)與現實(DB)之間
為了能讓整個專案能順利進行
也曾將資料實體(Entity)塞到類似Dictionary的資料結構中
再序列化(Serialize)存至檔案
網頁及相關商業邏輯都可以即時demo給客戶看
不過以往大型專案沒有擺個Oracle或Informix的大型資料庫是無法讓主管及業主信任的
光是出報表套印就無法過關
還好有雲端運算的支持
類似GAE Datastore的理念應該會越普及吧!!!

備忘一下,維護本地端datastore可到
http://localhost:8080/_ah/admin/datastore