2016-11-28 6 views
0

어쨌든 나쁜 생각 일지 모르지만 컨트롤러의 세션 범위를 컨트롤러 필드에 저장하기 위해 세션 범위를 사용하는 경우 (예 : 사용자 데이터의 캐싱 종류) 특정 사용자에 대해 자주 요청되는 정보를 얻기 위해 DB를 계속 사용할 필요가 없습니까?Grails 3는 scope = 'session'인 컨트롤러의 세션 데이터를 저장합니까?

그런데 서버가 컨트롤러 인스턴스를 얼마나 오래 붙잡고 있는지 궁금 할뿐입니다. 누군가가 브라우저 탭을 사용하지 않고 1 주일 동안 열어 둔다면, 해당 세션의 컨트롤러 인스턴스가 무한정으로 서버의 리소스를 소비하게됩니까?

답변

0

그런 컨트롤러를 사용할 수는 있지만 단순히 캐시를 대신 사용해야하는 이유는 무엇입니까? 이 방법보다 확장 성이 좋은 정말 좋은 캐시가 많이 있습니다 (예를 들어 Spring 캐시).

세션 관리 (세션 만료시)는 애플리케이션 컨테이너 (예 : Tomcat, JBoss, Websphere 등)에서 처리합니다. 서버와 상호 작용하지 않는 대부분의 경우 (예 : URL 또는 페이지 조회) 기본값 인 20 분 후에 만료됩니다. 따라서 세션이 만료되면 세션 범위 컨트롤러 인스턴스가 정리되고 제거 될 후보가됩니다.