代码之家  ›  专栏  ›  技术社区  ›  Jean Barmash

有选择地阻止创建会话

  •  1
  • Jean Barmash  · 技术社区  · 14 年前

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

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

    () 前= { if(actionname==“登录”)。{ def session=request.session//如果不存在,则创建会话 } } }

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

    1 回复  |  直到 14 年前
        1
  •  1
  •   Mike    14 年前

    现在,您无法阻止创建会话。见: http://jira.codehaus.org/browse/GRAILS-1238

    幸运的是,在您达到每秒大量请求之前,这不是一个大问题。为了避开“当前活动用户”报告中的错误数据,我们做的一件事是将会话记录到数据库中。我们只在用户登录时创建会话记录。然后在特定映射的URL上,我们将“触摸”该会话记录以更新上次访问的时间。会话记录可以跟踪用户代理、IP等,有很多原因都很有用。这样做可以避开虚假的会话计数。