Elegant shutdown for DiscardClient
This commit is contained in:
parent
e0e282770f
commit
70b87f84df
@ -27,9 +27,8 @@ import java.util.concurrent.Executors;
|
|||||||
|
|
||||||
import org.jboss.netty.bootstrap.ClientBootstrap;
|
import org.jboss.netty.bootstrap.ClientBootstrap;
|
||||||
import org.jboss.netty.channel.ChannelFactory;
|
import org.jboss.netty.channel.ChannelFactory;
|
||||||
|
import org.jboss.netty.channel.ChannelFuture;
|
||||||
import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;
|
import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;
|
||||||
import org.jboss.netty.handler.execution.ExecutionHandler;
|
|
||||||
import org.jboss.netty.handler.execution.MemoryAwareThreadPoolExecutor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Keeps sending random data to the specified address.
|
* Keeps sending random data to the specified address.
|
||||||
@ -70,12 +69,17 @@ public class DiscardClient {
|
|||||||
ClientBootstrap bootstrap = new ClientBootstrap(factory);
|
ClientBootstrap bootstrap = new ClientBootstrap(factory);
|
||||||
DiscardClientHandler handler = new DiscardClientHandler(firstMessageSize);
|
DiscardClientHandler handler = new DiscardClientHandler(firstMessageSize);
|
||||||
|
|
||||||
bootstrap.getPipeline().addLast("executor", new ExecutionHandler(new MemoryAwareThreadPoolExecutor(16, 0, 0)));
|
|
||||||
bootstrap.getPipeline().addLast("handler", handler);
|
bootstrap.getPipeline().addLast("handler", handler);
|
||||||
bootstrap.setOption("tcpNoDelay", true);
|
bootstrap.setOption("tcpNoDelay", true);
|
||||||
bootstrap.setOption("keepAlive", true);
|
bootstrap.setOption("keepAlive", true);
|
||||||
|
|
||||||
// Start the connection attempt.
|
// Start the connection attempt.
|
||||||
bootstrap.connect(new InetSocketAddress(host, port));
|
ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));
|
||||||
|
|
||||||
|
// Wait until the connection is closed or the connection attempt fails.
|
||||||
|
future.getChannel().getCloseFuture().awaitUninterruptibly();
|
||||||
|
|
||||||
|
// Shut down thread pools to exit.
|
||||||
|
factory.getExternalResource().release();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user