This commit is contained in:
@@ -47,7 +47,7 @@ public class PrepareRunner implements Runnable {
|
|||||||
if (response == null) response = responsePool.get();
|
if (response == null) response = responsePool.get();
|
||||||
try {
|
try {
|
||||||
response.init(channel);
|
response.init(channel);
|
||||||
prepare(data, response.request, response);
|
codec(data, response);
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
context.logger.log(Level.WARNING, "prepare servlet abort, force to close channel ", t);
|
context.logger.log(Level.WARNING, "prepare servlet abort, force to close channel ", t);
|
||||||
response.finish(true);
|
response.finish(true);
|
||||||
@@ -56,7 +56,7 @@ public class PrepareRunner implements Runnable {
|
|||||||
}
|
}
|
||||||
if (response == null) response = responsePool.get();
|
if (response == null) response = responsePool.get();
|
||||||
try {
|
try {
|
||||||
channel.read(keepalive ? context.getAliveTimeoutSeconds() : 0, TimeUnit.SECONDS,
|
channel.read(keepalive ? context.getAliveTimeoutSeconds() : context.getReadTimeoutSeconds(), TimeUnit.SECONDS,
|
||||||
new CompletionHandler<Integer, ByteBuffer>() {
|
new CompletionHandler<Integer, ByteBuffer>() {
|
||||||
@Override
|
@Override
|
||||||
public void completed(Integer count, ByteBuffer buffer) {
|
public void completed(Integer count, ByteBuffer buffer) {
|
||||||
@@ -74,9 +74,9 @@ public class PrepareRunner implements Runnable {
|
|||||||
// System.println(new String(bs));
|
// System.println(new String(bs));
|
||||||
// }
|
// }
|
||||||
buffer.flip();
|
buffer.flip();
|
||||||
response.init(channel);
|
|
||||||
try {
|
try {
|
||||||
prepare(buffer, response.request, response);
|
response.init(channel);
|
||||||
|
codec(buffer, response);
|
||||||
} catch (Throwable t) { //此处不可 context.offerBuffer(buffer); 以免prepare.prepare内部异常导致重复 offerBuffer
|
} catch (Throwable t) { //此处不可 context.offerBuffer(buffer); 以免prepare.prepare内部异常导致重复 offerBuffer
|
||||||
context.logger.log(Level.WARNING, "prepare servlet abort, force to close channel ", t);
|
context.logger.log(Level.WARNING, "prepare servlet abort, force to close channel ", t);
|
||||||
response.finish(true);
|
response.finish(true);
|
||||||
@@ -104,7 +104,8 @@ public class PrepareRunner implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void prepare(final ByteBuffer buffer, final Request request, final Response response) throws IOException {
|
protected void codec(final ByteBuffer buffer, final Response response) throws IOException {
|
||||||
|
final Request request = response.request;
|
||||||
final PrepareServlet preparer = context.prepare;
|
final PrepareServlet preparer = context.prepare;
|
||||||
preparer.executeCounter.incrementAndGet();
|
preparer.executeCounter.incrementAndGet();
|
||||||
final int rs = request.readHeader(buffer);
|
final int rs = request.readHeader(buffer);
|
||||||
|
|||||||
@@ -92,12 +92,13 @@ public class TcpAioProtocolServer extends ProtocolServer {
|
|||||||
channel.setOption(StandardSocketOptions.SO_REUSEADDR, true);
|
channel.setOption(StandardSocketOptions.SO_REUSEADDR, true);
|
||||||
channel.setOption(StandardSocketOptions.SO_RCVBUF, 16 * 1024);
|
channel.setOption(StandardSocketOptions.SO_RCVBUF, 16 * 1024);
|
||||||
channel.setOption(StandardSocketOptions.SO_SNDBUF, 16 * 1024);
|
channel.setOption(StandardSocketOptions.SO_SNDBUF, 16 * 1024);
|
||||||
} catch (IOException e) {
|
|
||||||
context.logger.log(Level.INFO, channel + " setOption error", e);
|
AsyncConnection conn = new TcpAioAsyncConnection(context.getBufferSupplier(), context.getBufferConsumer(), channel,
|
||||||
|
context.getSSLContext(), null, context.readTimeoutSeconds, context.writeTimeoutSeconds, livingCounter, closedCounter);
|
||||||
|
context.runAsync(new PrepareRunner(context, conn, null, null));
|
||||||
|
} catch (Throwable e) {
|
||||||
|
context.logger.log(Level.INFO, channel + " accept error", e);
|
||||||
}
|
}
|
||||||
AsyncConnection conn = new TcpAioAsyncConnection(context.getBufferSupplier(), context.getBufferConsumer(), channel,
|
|
||||||
context.getSSLContext(), null, context.readTimeoutSeconds, context.writeTimeoutSeconds, livingCounter, closedCounter);
|
|
||||||
context.runAsync(new PrepareRunner(context, conn, null, null));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user