2009-07-11 32 views
3
  1. App引擎允許您30秒來加載您的應用程序
  2. 我的應用程序需要大約30秒 - 有時更多,有時更少。我不知道如何解決這個問題。
  3. 如果應用程序空閒(暫時未收到請求),則需要重新加載。

因此,爲了避免應用程序需要重新加載,我想通過每隔一段時間就ping應用程序來模擬用戶活動。如何使App Engine/Java應用程序與Java/Python web cron的聾人請求一起運行?

但有一個問題。 。 。

如果我ping了應用程序,並且它已被App Engine卸載,我的Web請求將成爲第一個應用程序請求,應用程序將嘗試重新加載。這可能需要超過30秒並超過加載時間限制。

所以我的想法是ping應用程序,但不等待響應。我通過從瀏覽器進入網站手動模擬了這一點,提出請求並立即關閉瀏覽器 - 它似乎讓應用程序保持活躍狀態​​。

任何關於在Python或Java Web cron中執行此操作的好方法的建議(我假設Python解決方案會更簡單)?

+0

爲什麼你的應用程序獲得30秒加載?你在用什麼? log4j的? – dfa 2009-07-11 08:59:30

+0

我認爲dfa有正確的想法 - 這可能會更好地利用您的時間來弄清楚爲什麼需要30秒才能加載您的應用。典型請求一旦被加載需要多長時間?在開發環境中運行它時,還是僅在部署時才需要30秒啓動?你在一個靜態初始化器中考慮大數字嗎? :) – 2009-07-11 15:58:01

回答

1

我想你想要的僅僅是:

import httplib 
hcon = httplib.HTTPConnection("foo.appspot.com") 
hcon.request("GET", "/someURL") 
hcon.close() 
1

最簡單的Java HTTP瓶兒:

URLConnection hcon = new URL("http://www.google.com").openConnection(); 
hcon.connect(); 
hcon.getInputStream().read(); 
1

應用程序引擎還有一個新的PAY功能,您可以將其「永遠在線」。成本約爲每天0.30美元。只要進入您的結算設置,並啓用它,如果你不介意支付功能。我相信它可以保證你至少有三個實例在運行。

(我不知道打造成一個實例旋轉起來會導致它超過30秒極限/ ping網址!)

相關問題