Java计时器逻辑

时间:2020-09-30 05:34:41

标签: java dropwizard

这是我发现的一些代码,在这里我们需要测量每个查询的查询执行时间? 为了测量metricRegistry.timer被使用,但是它如何测量它在哪个时间测量,因为我找不到任何一行代码来定义停止时间? 有人可以帮助我解决在互联网上找不到任何东西吗?

 try (PreparedStatement ps = connection.prepareStatement(QUERY.SQL())) {
          try (
               Timer.Context ignored = metricRegistry.timer(name("query", QUERY.NAME())).time();
               ResultSet rs = ps.executeQuery()) {
            if (rs.next()) {
              successCounter.inc();
            } else {
              failedCounter.inc();
            }
          }
        } 

1 个答案:

答案 0 :(得分:0)

Timer.ContextCloseable,这意味着当您像在此处那样在try块中使用它时,当{{ 1}}块已退出。此外,根据close()https://metrics.dropwizard.io/3.1.0/apidocs/com/codahale/metrics/Timer.Context.html)的Javadocs,调用try就像调用Timer.Context一样。因此,基本上,close()块退出时会在计时器上调用stop()