2010-04-26 88 views
3

當我們在像谷歌應用程序引擎打開會議上:啓用會話 - 我們必須自己清理它們嗎?

// appengine-web.xml 
<sessions-enabled>true</sessions-enabled> 

做應用程序引擎自動清理過期會話,還是我們必須這樣做自己?打開它們之後,我在數據存儲中看到一些條目正在生成,如_ah_session,我想知道是否它們是?

謝謝

回答

3

是的那些是會議條目。 Google的應用引擎文檔包括以下內容:

該實現創建_ah_SESSION類型的數據存儲實體和使用帶有_ahs前綴的鍵的memcache條目。

http://code.google.com/appengine/docs/java/config/appconfig.html

至於清理會話數據。我發現下面的2討論:

http://groups.google.com/group/google-appengine-java/browse_thread/thread/4f0d9af1c633d39a http://www.mail-archive.com/[email protected]/msg01372.html

HTH, 史蒂夫

0

Cleaning Up Expired Sessions From App Engine Datastore

您需要配置由谷歌提供的清理servlet來定期運行。注意:servlet最多可以清理100個條目。請務必決定您需要多久調用一次,並根據需要確定時間間隔。

在web.xml:

<web-app...> 
    <servlet> 
    <servlet-name>_ah_sessioncleanup</servlet-name> 
    <servlet-class>com.google.apphosting.utils.servlet.SessionCleanupServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>_ah_sessioncleanup</servlet-name> 
    <url-pattern>/_ah/sessioncleanup</url;-pattern> 
    </servlet-mapping> 

    <security-constraint> 
    <web-resource-collection> 
     <web-resource-name>session-cleanup</web-resource-name> 
     <url-pattern>/_ah/sessioncleanup</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>admin</role-name> 
    </auth-constraint> 
    </security-constraint> 
    ... 
</web-app> 

而且在cron.xml:

<cronentries> 
    <cron> 
    <url>/_ah/sessioncleanup?clear</url> 
    <description>Clean up sessions</description> 
    <schedule>every 15 minutes</schedule> 
    </cron> 
    ... 
</cronentries> 
+0

難道你作爲項目承擔清理這些實體的成本。我認爲應該由基礎設施來隱含地這樣做,而不會成爲開發者關心的問題。 – 2017-10-17 12:15:52

相關問題