java中請求響應時間監控

對多渠道的請求中,有時候需要控制請求的響應時間,
在java JDK1.5後,提供的併發包java.util.concurrent爲此提供了響應的解決辦法。
jdk1.5自帶的併發庫中Future類就能滿足這個需求。
Future類中重要方法包括get()和cancel()。
get()獲取數據對象,如果數據沒有加載,就會阻塞直到取到數據,而 cancel()是取消數據加載。
另外一個get(timeout)操作,表示如果在timeout時間內沒有取到就失敗返回,而不再阻塞。 

private static final ExecutorService exec = Executors.newCachedThreadPool();

Callable<CloseableHttpResponse> call = new Callable<CloseableHttpResponse>() {
public CloseableHttpResponse call() throws Exception {
return doProcess(configuration.getMethodName());
}
};

Future<CloseableHttpResponse> future = exec.submit(call);
try {
resp = future.get(limitTime, TimeUnit.SECONDS);// 設置請求時間爲60秒
} catch (InterruptedException e) {
e.printStackTrace();
//TODO
} catch (ExecutionException e) {
e.printStackTrace();
//TODO
} catch (TimeoutException e) {
e.printStackTrace();
//TODO
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章