2011-06-06 66 views
10

我們可以以編程方式啓動動態後端嗎?意味着當後端開始時,我如何通過回退應用程序來處理請求(我的意思是app.appspot.com)。動態後端如何在Google App Engine中啓動

,當我在管理控制檯手動停止後端,併發送請求給它,它不啓動「動態」

回答

4

後端都記錄相當徹底here。必須使用appcfg或管理控制檯啓動和停止後端,如文檔here所述。停止的後端不會處理請求 - 如果你想這樣做,你應該使用Task Queue來代替。

+0

「一個停止的後端不會處理請求」這就是我需要的。管理控制檯中顯示的動態後端的開始,停止狀態不是其狀態的正確表示。只需在管理控制檯中「啓動」一個動態後端,以便動態處理請求,如果沒有請求,則不會向您收費。 – syllogismos 2011-06-07 12:51:47

+0

@RemotePath然後你想要任務隊列,而不是後端。這正是任務隊列的工作原理。 – 2011-06-08 00:22:06

+4

您可以將任務隊列和後端這樣的: 'taskqueue.add(URL = '/ task_url',方法= 'GET',目標= 'name_of_your_backend'))' 任務將無法在開發雖然運行,因此在dev上設置目標爲None: 'taskqueue.add(url ='/ task_url',method ='GET',target =(None if const.DEBUG else'name_of_your_backend'))' 其中DEBUG等於'os.environ ['SERVER_SOFTWARE']。startswith('Dev')' – crizCraig 2011-09-05 06:21:06

5

當它們收到請求時動態後端出現,空閒時關閉 ;它們適用於間歇性或受用戶活動驅動的工作。

居民後端連續運行,允許您隨着時間的推移依賴內存狀態 並執行復雜的初始化。

http://code.google.com/appengine/docs/python/backends/overview.html

最近,我開始在動態後端執行長期運行的任務,並注意到在前端的性能顯着提高。我認爲這是因爲長時間運行的任務與正常的用戶請求競爭資源。

+0

「動態後端在他們收到請求時出現」 - 您如何向後端發送請求? – Keith 2013-03-05 16:48:41

+0

嗯,我認爲他們有終點(從我記得)像'backendname.appname.appspot.com'。 – crizCraig 2013-03-05 19:51:45

1

似乎動態後端不需要顯式停止。 overvicew(http://code.google.com/appengine/docs/python/backends/overview.html)指出,在處理最後一個請求15分鐘後,動態後端的計費將停止。因此,如果您的應用程序有cron作業,例如,需要5分鐘才能完成,並且需要每小時運行一次,那麼您可以配置後端來執行此操作。您將花費的成本是每小時15 + 5分鐘,或全天8小時。我猜想免費配額可以讓你在後臺工作幾小時。所以,這種情況對你來說是免費的。當您通過隊列發送第一個請求到後端時,後端將開始啓動,並且在發送完最後一個請求之後15分鐘停止。

相關問題