當我們在像谷歌應用程序引擎打開會議上:啓用會話 - 我們必須自己清理它們嗎?
// appengine-web.xml
<sessions-enabled>true</sessions-enabled>
做應用程序引擎自動清理過期會話,還是我們必須這樣做自己?打開它們之後,我在數據存儲中看到一些條目正在生成,如_ah_session,我想知道是否它們是?
謝謝
當我們在像谷歌應用程序引擎打開會議上:啓用會話 - 我們必須自己清理它們嗎?
// appengine-web.xml
<sessions-enabled>true</sessions-enabled>
做應用程序引擎自動清理過期會話,還是我們必須這樣做自己?打開它們之後,我在數據存儲中看到一些條目正在生成,如_ah_session,我想知道是否它們是?
謝謝
是的那些是會議條目。 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, 史蒂夫
從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>
難道你作爲項目承擔清理這些實體的成本。我認爲應該由基礎設施來隱含地這樣做,而不會成爲開發者關心的問題。 – 2017-10-17 12:15:52