有选择地阻止创建会话

时间:2010-05-24 22:05:19

标签: grails session-variables

在我的应用程序中,我有一个外部监视器,可以在几分钟内ping应用程序并测量其正常运行时间/响应时间每次监视器连接时,都会创建一个新的服务器会话,因此当我查看会话数时,它是即使在没有实际用户的情况下,也始终至少为15。

我尝试通过将会话创建代码放入过滤器来解决这个问题,但似乎没有这样做 - 我想当用户打开第一页时会自动创建会话?

all(){         before = {           if(actionName =='signin'){              def session = request.session //如果不存在则创建会话           }         }       }

如果需要,我可以将监视器配置为传递参数(即http://servername.com/?nosession,但不确定如何确保不创建会话。

1 个答案:

答案 0 :(得分:1)

目前,您无法阻止会话创建。请参阅:http://jira.codehaus.org/browse/GRAILS-1238

幸运的是,在您每秒钟发出大量请求之前,这不是一个大问题。我们在“当前活动用户”报告中绕过错误数据所做的一件事就是将会话记录到数据库中。我们仅在用户登录时创建会话记录。然后,在特定映射的URL上,我们将“触摸”该会话记录以更新上次访问的时间。会话记录跟踪用户代理,IP等,并且由于许多原因而有用。做这样的事情可以解决虚假会议的问题。