Java 定时器逻辑
Java Timer logic
这是我在需要测量每个查询的查询执行时间的地方找到的一些代码?
为了测量使用了 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();
}
}
}
A Timer.Context
是一个 Closeable
,这意味着当您像此处那样在 try
块中使用它时,它的 close()
方法会在try
块已退出。此外,根据 Timer.Context
(https://metrics.dropwizard.io/3.1.0/apidocs/com/codahale/metrics/Timer.Context.html) 的 Javadocs,调用 close()
就像调用 stop()
。所以基本上,当 try
块退出时,stop()
在计时器上被调用。
这是我在需要测量每个查询的查询执行时间的地方找到的一些代码?
为了测量使用了 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();
}
}
}
A Timer.Context
是一个 Closeable
,这意味着当您像此处那样在 try
块中使用它时,它的 close()
方法会在try
块已退出。此外,根据 Timer.Context
(https://metrics.dropwizard.io/3.1.0/apidocs/com/codahale/metrics/Timer.Context.html) 的 Javadocs,调用 close()
就像调用 stop()
。所以基本上,当 try
块退出时,stop()
在计时器上被调用。