From e05b6f713a11f4ecf9cf60513d6d78d297979ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9C=B0=E5=B9=B3=E7=BA=BF?= <22250530@qq.com> Date: Wed, 21 Oct 2015 08:59:41 +0800 Subject: [PATCH] --- src/com/wentch/redkale/net/PrepareRunner.java | 4 +--- src/com/wentch/redkale/net/Request.java | 5 +++++ src/com/wentch/redkale/net/Response.java | 13 +++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/com/wentch/redkale/net/PrepareRunner.java b/src/com/wentch/redkale/net/PrepareRunner.java index 1f6823112..0afd5e2db 100644 --- a/src/com/wentch/redkale/net/PrepareRunner.java +++ b/src/com/wentch/redkale/net/PrepareRunner.java @@ -60,9 +60,7 @@ public final class PrepareRunner implements Runnable { } // { //测试 // buffer.flip(); -// byte[] bytes = new byte[buffer.remaining()]; -// buffer.get(bytes); -// System.println(new String(bytes)); +// System.println(new String(buffer.array(), 0, buffer.remaining())); // } buffer.flip(); final Response response = responsePool.poll(); diff --git a/src/com/wentch/redkale/net/Request.java b/src/com/wentch/redkale/net/Request.java index 998b32707..461f832b1 100644 --- a/src/com/wentch/redkale/net/Request.java +++ b/src/com/wentch/redkale/net/Request.java @@ -90,4 +90,9 @@ public abstract class Request { public Context getContext() { return this.context; } + + public long getCreatetime() { + return createtime; + } + } diff --git a/src/com/wentch/redkale/net/Response.java b/src/com/wentch/redkale/net/Response.java index f1258b30c..cb6eb005c 100644 --- a/src/com/wentch/redkale/net/Response.java +++ b/src/com/wentch/redkale/net/Response.java @@ -24,6 +24,8 @@ public abstract class Response { private boolean inited = true; + protected Runnable recycleListener; + private final CompletionHandler finishHandler = new CompletionHandler() { @Override @@ -96,6 +98,13 @@ public abstract class Response { protected boolean recycle() { if (!inited) return false; boolean keepAlive = request.keepAlive; + if (recycleListener != null) { + try { + recycleListener.run(); + } catch (Exception e) { + } + recycleListener = null; + } request.recycle(); if (channel != null) { if (keepAlive) { @@ -122,6 +131,10 @@ public abstract class Response { this.request.createtime = System.currentTimeMillis(); } + public void setRecycleListener(Runnable recycleListener) { + this.recycleListener = recycleListener; + } + public void finish() { this.finish(false); }