Google App Engine, backend APIs

最近發現一個好物...
可以把GAE 60秒的時間限制給克服掉(執行時間無上限)

Backend instance, 等於再開一台伺服器作為後端運算用:
https://developers.google.com/appengine/docs/python/backends/overview

結合排程工作的話, 可以做很多好玩的事情...
它的運作原理是這樣:

Step1. 先在Cron job 中指定一個工作, 該工作是用url 去指定, url --> controller 就像常規的寫法一樣, 不過為了區別, 一般會用特殊的url 格式表示這是背景執行作業

Step2. 在該url 的controller 中(跟其它controller 其實無異), 塞一個工作到job queue 中, 指定該job 是要塞到backend 的job queue 中, 詳細作法可以看這邊 https://developers.google.com/appengine/docs/java/taskqueue/overview-push?hl=zh-TW

Step3. 理論上塞進去就會即刻開始執行, 而為了省錢, 我們一般會將backend 設定成dynamics 的, 意即有job 才需要啟動之, 否則就關機, 關機就不收費, GAE 每15分鐘會檢查是否開機然後記費, 若當時是開機的, 則這15分鐘就得算費用

Note: 得deploy backend.yaml 做好設定後才能指派工作給backend 執行, backend 是一台獨立的機器, 有自己的url mapping rule, 程式可以完全和frontend 不同(deploy 時要上到backend 要指定目的地, 否則是上到frontend)

留言

熱門文章