@Override public void destroy() { super.destroy(); try { // Cancel the reconnection timer ExecutorUtil.cancelScheduledFuture(reconnectFuture); } catch (Throwable t) { logger.warn("Failed to cancel reconnect timer", t); } registryInvoker.destroy(); ExecutorUtil.gracefulShutdown(reconnectTimer, reconnectPeriod); }
public NettyServer(URL url, ChannelHandler handler) throws RemotingException { super(url, ChannelHandlers.wrap(handler, ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME))); }
public static void shutdownNow(Executor executor, final int timeout) { if (!(executor instanceof ExecutorService) || isTerminated(executor)) { return; } final ExecutorService es = (ExecutorService) executor; try { es.shutdownNow(); } catch (SecurityException ex2) { return; } catch (NullPointerException ex2) { return; } try { es.awaitTermination(timeout, TimeUnit.MILLISECONDS); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); } if (!isTerminated(es)) { newThreadToCloseExecutor(es); } }
@Override public void close(int timeout) { ExecutorUtil.gracefulShutdown(executor, timeout); close(); }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { ExecutorUtil.cancelScheduledFuture(welcomeFuture); ctx.close(); } }
@Override public void close() { if (logger.isInfoEnabled()) { logger.info("Close " + getClass().getSimpleName() + " bind " + getBindAddress() + ", export " + getLocalAddress()); } ExecutorUtil.shutdownNow(executor, 100); try { super.close(); } catch (Throwable e) { logger.warn(e.getMessage(), e); } try { doClose(); } catch (Throwable e) { logger.warn(e.getMessage(), e); } }
private static void newThreadToCloseExecutor(final ExecutorService es) { if (!isTerminated(es)) { shutdownExecutor.execute(new Runnable() { @Override public void run() { try { for (int i = 0; i < 1000; i++) { es.shutdownNow(); if (es.awaitTermination(10, TimeUnit.MILLISECONDS)) { break; } } } catch (InterruptedException ex) { Thread.currentThread().interrupt(); } catch (Throwable e) { logger.warn(e.getMessage(), e); } } }); } }
@Override public void close(int timeout) { ExecutorUtil.gracefulShutdown(executor, timeout); close(); }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { ExecutorUtil.cancelScheduledFuture(welcomeFuture); ctx.close(); } }
@Override public void close() { if (logger.isInfoEnabled()) { logger.info("Close " + getClass().getSimpleName() + " bind " + getBindAddress() + ", export " + getLocalAddress()); } ExecutorUtil.shutdownNow(executor, 100); try { super.close(); } catch (Throwable e) { logger.warn(e.getMessage(), e); } try { doClose(); } catch (Throwable e) { logger.warn(e.getMessage(), e); } }
private static void newThreadToCloseExecutor(final ExecutorService es) { if (!isTerminated(es)) { shutdownExecutor.execute(new Runnable() { @Override public void run() { try { for (int i = 0; i < 1000; i++) { es.shutdownNow(); if (es.awaitTermination(10, TimeUnit.MILLISECONDS)) { break; } } } catch (InterruptedException ex) { Thread.currentThread().interrupt(); } catch (Throwable e) { logger.warn(e.getMessage(), e); } } }); } }
@Override public void destroy() { super.destroy(); try { // Cancel the reconnection timer ExecutorUtil.cancelScheduledFuture(reconnectFuture); } catch (Throwable t) { logger.warn("Failed to cancel reconnect timer", t); } registryInvoker.destroy(); ExecutorUtil.gracefulShutdown(reconnectTimer, reconnectPeriod); }
@Override public void close(int timeout) { ExecutorUtil.gracefulShutdown(executor, timeout); close(); }
public NettyServer(URL url, ChannelHandler handler) throws RemotingException { super(url, ChannelHandlers.wrap(handler, ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME))); }
@Override public void close() { super.close(); try { ExecutorUtil.cancelScheduledFuture(checkModifiedFuture); } catch (Throwable t) { logger.error(t.getMessage(), t); } }
public static void shutdownNow(Executor executor, final int timeout) { if (!(executor instanceof ExecutorService) || isTerminated(executor)) { return; } final ExecutorService es = (ExecutorService) executor; try { es.shutdownNow(); } catch (SecurityException ex2) { return; } catch (NullPointerException ex2) { return; } try { es.awaitTermination(timeout, TimeUnit.MILLISECONDS); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); } if (!isTerminated(es)) { newThreadToCloseExecutor(es); } }
@Override public void close() { try { super.close(); } catch (Throwable e) { logger.warn(e.getMessage(), e); } try { if (executor != null) { ExecutorUtil.shutdownNow(executor, 100); } } catch (Throwable e) { logger.warn(e.getMessage(), e); } try { disconnect(); } catch (Throwable e) { logger.warn(e.getMessage(), e); } try { doClose(); } catch (Throwable e) { logger.warn(e.getMessage(), e); } }
private static void newThreadToCloseExecutor(final ExecutorService es) { if (!isTerminated(es)) { shutdownExecutor.execute(new Runnable() { @Override public void run() { try { for (int i = 0; i < 1000; i++) { es.shutdownNow(); if (es.awaitTermination(10, TimeUnit.MILLISECONDS)) { break; } } } catch (InterruptedException ex) { Thread.currentThread().interrupt(); } catch (Throwable e) { logger.warn(e.getMessage(), e); } } }); } }
/** * Remove the expired providers(if clean is true), leave the multicast group and close the multicast socket. */ @Override public void destroy() { super.destroy(); try { ExecutorUtil.cancelScheduledFuture(cleanFuture); } catch (Throwable t) { logger.warn(t.getMessage(), t); } try { multicastSocket.leaveGroup(multicastAddress); multicastSocket.close(); } catch (Throwable t) { logger.warn(t.getMessage(), t); } ExecutorUtil.gracefulShutdown(cleanExecutor, cleanPeriod); }
@Override public void close(int timeout) { ExecutorUtil.gracefulShutdown(executor, timeout); close(); }