2012-10-24 20 views
7

理解熱身請求是,它是一個請求,「素」一個新的前端/後端實例(還是他們只適用於前端?)準備在不久的將來某個時候使用。谷歌應用程序引擎:預熱/載入的請求,並始終在

加載請求我的理解,這是因爲它需要現在旋轉,一個新的實例的請求。因此,自己應該提前嘗試「預熱」實例,以使加載延遲小得多。因此,我的第一個問題是:我對這些請求類型的理解是否正確,如果不正確(或者如果我錯過了任何值得注意的地方),那麼請首先澄清/糾正我!

接下來我很好奇:您如何讓GAE服務器端代碼「處理」熱身或加載請求?是否有我需要實現的特定接口(在Java EE領域中,您需要實現ServiceContextListener,Web /應用程序容器在部署/啓動應用程序時查找並調用它)。如果是這樣,這樣做的API是什麼?否則,GAE應用程序的「入口點」是什麼?基本上我想知道什麼類/方法應該處理熱身/加載請求。

最後,我問:在啓動過程中,處理熱身請求和加載請求之間,什麼(一般)活動應該不同?他們會不一樣嗎?我問,因爲我有興趣使用GAE的「永遠在線」高級功能,並且不確定我應該在哪裏放置我的啓動代碼以用於始終處於啓動狀態的實例。

回答

7

預熱請求是讓實例準備好處理流量的一種方式,這樣用戶不必等待Java或Python應用程序加載所有導入,然後執行任何特定於實例的初始化(包括緩存變暖),它需要做的。預熱請求適用於前端和後端。

你如何做到這一點的細節取決於語言,但基本上你需要一個處理器來處理請求到/_ah/warmup產生的東西,而不是500響應。有關詳情,Google會提供「App engine warmup request」並選取適當的結果。對於Java,默認啓用熱身請求,但對於Python,您必須在app.yaml中啓用它們。我還沒有嘗試過他們的Go。

據我所知,'加載請求'只是實例必須處理的第一個請求的名稱。 https://developers.google.com/appengine/kb/java#What_Is_A_Loading_Request有一些細節。