加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

记录Play!2 Scala应用程序的请求时间

发布时间:2020-12-16 08:43:30 所属栏目:安全 来源:网络整理
导读:我正在尝试在 Scala Play!2应用程序中记录所有请求的时间.我想我需要覆盖onRequestReceived来返回一个调用该动作的新Handler,然后记录时间,然后返回动作的结果.但我不知道如何调用处理程序. 这就是我所拥有的: override def onRequestReceived(requestHead
我正在尝试在 Scala Play!2应用程序中记录所有请求的时间.我想我需要覆盖onRequestReceived来返回一个调用该动作的新Handler,然后记录时间,然后返回动作的结果.但我不知道如何调用处理程序.

这就是我所拥有的:

override def onRequestReceived(requestHeader: RequestHeader) = {
  val startTime = System.currentTimeMillis

  val (rh,handler) = super.onRequestReceived(requestHeader)

  def newHandler = Action {
    val result = handler.apply // No such method

    val requestTime = System.currentTimeMillis - startTime
    Logger.debug("time: " + requestTime)

    result
  }

  (rh,newHandler)
}

但handler.apply不存在.如何调用super.onRequestReceived返回的处理程序.而且,更重要的是,我是否正确地采取了这种方式?

解决方法

那么,为什么不调用基类并记录基类中的方法处理它的时间,而不是试图自己处理请求的任务.换一种说法:

override def onRequestReceived(request: RequestHeader) = {
  val startTime = System.currentTimeMillis()
  val result = super.onRequestReceived(request)
  val endTime = System.currentTimeMillis()
  logger.debug("Request lasted:" + (endTime - startTime) + " ms")
  result
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读