2012-10-24 1 views
7

My zrozumienie z prośbą nagrzewania jest to, że wniosek o wystąpienie „prime” nowy frontend/backend (czy mają one zastosowanie wyłącznie do nakładki?) w przygotowaniu do użycia w pewnym momencie w niedalekiej przyszłości.Google App: Warmup/ładowanie Wnioski i zawsze na

Moja zrozumienie żądania ładunkowej jest to, że jest to żądanie spin-up nową instancję, ponieważ jest ona potrzebna teraz. W związku z tym należałoby spróbować "rozgrzać" instancje z wyprzedzeniem, aby opóźnienie ładowania było znacznie mniejsze.

Moje pierwsze pytanie brzmi: czy moje rozumienie tych typów wniosków jest poprawne, a jeśli nie (lub jeśli brakuje mi tu czegoś godnego uwagi), proszę zacząć od wyjaśnienia/korekty mnie!

Następnie jestem ciekawy: w jaki sposób uzyskać kod po stronie serwera GAE, aby "obsłużyć" żądanie rozgrzewania lub ładowania? Czy jest jakiś konkretny interfejs, który muszę zaimplementować (w Java EE land, musisz również zaimplementować ServiceContextListener, który kontener internetowy/aplikacja szuka i wywołuje, gdy aplikacja jest wdrożona/uruchomiona). Jeśli tak, to do czego służy API? W przeciwnym razie, jaki jest "punkt wejścia" dla aplikacji GAE? Zasadniczo zastanawiam się, jaka klasa/metoda powinna obsługiwać żądania ładowania/ładowania.

Ostatnio, pytam: jakie (ogólne) czynności powinny się różnić w procesie uruchamiania między obsługą zgłoszeń rozgrzewania a żądaniami ładowania? Czy nie byliby tacy sami? Pytam, ponieważ jestem zainteresowany wykorzystaniem funkcji premium "Zawsze na żywo" GAE i nie jestem pewien, gdzie powinienem umieścić mój kod startowy dla instancji, które zawsze będą włączone.

Odpowiedz

7

Rozgrzewkowe żądania to sposób na przygotowanie instancji do obsługi ruchu, aby użytkownicy nie musieli czekać, podczas gdy aplikacja Java lub Python ładuje wszystkie swoje importowane pliki, a następnie inicjuje konkretną instancję (w tym ocieplenie pamięci podręcznej), które musi wykonać. Żądania warmup dotyczą zarówno frontendów, jak i backendów.

Szczegóły na temat tego, jak to zrobić, zależą od języka, ale w zasadzie potrzebny jest program obsługi zgłoszeń do /_ah/warmup, który generuje coś innego niż odpowiedź w wysokości 500. Aby uzyskać szczegółowe informacje, Google "żądanie rozgrzania silnika aplikacji" i wybierz odpowiednie wyniki. Żądania Warmup są domyślnie włączone dla Javy, ale dla Pythona musisz je włączyć w swoim app.yaml. Nie próbowałem ich jeszcze w Go.

"Żądanie ładowania", o ile wiem, jest po prostu nazwą nadaną pierwszemu żądaniu, które musi obsłużyć instancja. https://developers.google.com/appengine/kb/java#What_Is_A_Loading_Request ma pewne szczegóły.