Java Code Examples for io.netty.channel.EventLoop#schedule()
The following examples show how to use
io.netty.channel.EventLoop#schedule() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: OFConnectionHandler.java From onos with Apache License 2.0 | 6 votes |
@Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { log.info(String.format(MSG_STATE, ofSwitch.dpid(), MSG_CONNECTED, controller.ip(), controller.port())); // FIXME add close future listener to handle connection lost } else { if (retryCount.getAndIncrement() > MAX_RETRY) { log.warn(String.format(MSG_STATE, ofSwitch.dpid(), MSG_FAILED, controller.ip(), controller.port())); } else { final EventLoop loop = future.channel().eventLoop(); loop.schedule(this::connect, 1L, TimeUnit.SECONDS); } } }
Example 2
Source File: Controller.java From onos with Apache License 2.0 | 6 votes |
@Override public void operationComplete(ChannelFuture channelFuture) throws Exception { if (!channelFuture.isSuccess()) { channelFuture.channel().close(); if (count.incrementAndGet() < MAX_RETRY) { final EventLoop loop = channelFuture.channel().eventLoop(); loop.schedule(() -> { try { controller.connectRetry(this.ip, this.port, this); } catch (Exception e) { log.warn("Connection to the ovsdb server {}:{} failed(cause: {})", ip, port, e); } }, 1L, TimeUnit.SECONDS); } else { failhandler.accept(new Exception("max connection retry(" + MAX_RETRY + ") exceeded")); } } else { handleNewNodeConnection(channelFuture.channel()); } }
Example 3
Source File: DefaultClientChannelInboundHandler.java From hermes with Apache License 2.0 | 6 votes |
@Override public void channelInactive(ChannelHandlerContext ctx) throws Exception { log.info("Disconnected from broker(addr={})", NettyUtils.parseChannelRemoteAddr(ctx.channel())); if (!m_endpointChannel.isClosed()) { m_endpointChannel.setChannelFuture(null); final EventLoop loop = ctx.channel().eventLoop(); loop.schedule(new Runnable() { @Override public void run() { log.info("Reconnecting to broker({}:{})", m_endpoint.getHost(), m_endpoint.getPort()); m_endpointClient.connect(m_endpoint, m_endpointChannel); } }, m_config.getEndpointChannelAutoReconnectDelay(), TimeUnit.SECONDS); } super.channelInactive(ctx); }
Example 4
Source File: BGPProtocolSessionPromise.java From bgpcep with Eclipse Public License 1.0 | 6 votes |
synchronized void reconnect() { if (this.retryTimer == 0) { LOG.debug("Retry timer value is 0. Reconnection will not be attempted"); this.setFailure(this.pending.cause()); return; } final EventLoop loop = this.pending.channel().eventLoop(); loop.schedule(() -> { synchronized (BGPProtocolSessionPromise.this) { if (BGPProtocolSessionPromise.this.peerSessionPresent) { LOG.debug("Connection to {} already exists", BGPProtocolSessionPromise.this.address); BGPProtocolSessionPromise.this.connectSkipped = true; return; } BGPProtocolSessionPromise.this.connectSkipped = false; LOG.debug("Attempting to connect to {}", BGPProtocolSessionPromise.this.address); final ChannelFuture reconnectFuture = BGPProtocolSessionPromise.this.bootstrap.connect(); reconnectFuture.addListener(new BootstrapConnectListener()); BGPProtocolSessionPromise.this.pending = reconnectFuture; } }, this.retryTimer, TimeUnit.SECONDS); LOG.debug("Next reconnection attempt in {}s", this.retryTimer); }
Example 5
Source File: KeepAliveHandler.java From armeria with Apache License 2.0 | 6 votes |
@Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { logger.debug("{} PING write successful", channel); final EventLoop el = channel.eventLoop(); shutdownFuture = el.schedule(shutdownRunnable, pingIdleTimeNanos, TimeUnit.NANOSECONDS); pingState = PingState.PENDING_PING_ACK; resetStopwatch(); } else { // Mostly because the channel is already closed. So ignore and change state to IDLE. // If the channel is closed, we change state to SHUTDOWN on destroy. if (!future.isCancelled() && Exceptions.isExpected(future.cause())) { logger.debug("{} PING write failed", channel, future.cause()); } if (pingState != PingState.SHUTDOWN) { pingState = PingState.IDLE; } } }
Example 6
Source File: BmpDispatcherImpl.java From bgpcep with Eclipse Public License 1.0 | 6 votes |
@Override public void operationComplete(final ChannelFuture future) throws Exception { if (future.isCancelled()) { LOG.debug("Connection {} cancelled!", future); } else if (future.isSuccess()) { LOG.debug("Connection {} succeeded!", future); future.channel().closeFuture().addListener((ChannelFutureListener) channelFuture -> scheduleConnect()); } else { if (this.delay > MAXIMUM_BACKOFF) { LOG.warn("The time of maximum backoff has been exceeded. No further connection attempts with BMP " + "router {}.", this.remoteAddress); future.cancel(false); return; } final EventLoop loop = future.channel().eventLoop(); loop.schedule(() -> this.bootstrap.connect().addListener(this), this.delay, TimeUnit.MILLISECONDS); LOG.info("The connection try to BMP router {} failed. Next reconnection attempt in {} milliseconds.", this.remoteAddress, this.delay); this.delay *= 2; } }
Example 7
Source File: ConnectionListener.java From resp-server with MIT License | 5 votes |
@Override public void operationComplete(ChannelFuture future) throws Exception { if (!future.isSuccess()) { EventLoop eventLoop = future.channel().eventLoop(); eventLoop.schedule(client::start, 1L, TimeUnit.SECONDS); } }
Example 8
Source File: GraphiteChannelInboundHandler.java From gruffalo with Apache License 2.0 | 5 votes |
private void scheduleReconnect(final ChannelHandlerContext ctx) { final EventLoop loop = ctx.channel().eventLoop(); loop.schedule(new Runnable() { @Override public void run() { log.info("Reconnecting to {}", graphiteTarget); client.connect(); } }, RECONNECT_DELAY_SEC, TimeUnit.SECONDS); }
Example 9
Source File: PCCReconnectPromise.java From bgpcep with Eclipse Public License 1.0 | 5 votes |
@Override public void operationComplete(final ChannelFuture cf) { synchronized (this.lock) { if (PCCReconnectPromise.this.isCancelled()) { if (cf.isSuccess()) { PCCReconnectPromise.LOG.debug("Closing channels for cancelled promise {}", PCCReconnectPromise.this); cf.channel().close(); } } else if (cf.isSuccess()) { PCCReconnectPromise.LOG.debug("Promise connection is successful."); } else { PCCReconnectPromise.LOG.debug("Attempt to connect to {} failed", PCCReconnectPromise.this.address, cf.cause()); if (PCCReconnectPromise.this.retryTimer == 0) { PCCReconnectPromise.LOG.debug("Retry timer value is 0. Reconnection will not be attempted"); PCCReconnectPromise.this.setFailure(cf.cause()); return; } final EventLoop loop = cf.channel().eventLoop(); loop.schedule(() -> { synchronized (PCCReconnectPromise.this) { PCCReconnectPromise.LOG.debug("Attempting to connect to {}", PCCReconnectPromise.this.address); final Future<Void> reconnectFuture = PCCReconnectPromise.this.bootstrap.connect(); reconnectFuture.addListener(this); PCCReconnectPromise.this.pending = reconnectFuture; } }, PCCReconnectPromise.this.retryTimer, TimeUnit.SECONDS); PCCReconnectPromise.LOG.debug("Next reconnection attempt in {}s", PCCReconnectPromise.this.retryTimer); } } }
Example 10
Source File: BmpMockDispatcher.java From bgpcep with Eclipse Public License 1.0 | 5 votes |
@Override public void operationComplete(final ChannelFuture future) throws Exception { if (future.isCancelled()) { LOG.debug("Connection {} cancelled!", future); } else if (future.isSuccess()) { LOG.debug("Connection {} succeeded!", future); future.channel().closeFuture().addListener((ChannelFutureListener) channelFuture -> scheduleConnect()); } else { final EventLoop loop = future.channel().eventLoop(); loop.schedule(() -> this.bootstrap.connect().addListener(this), this.delay, TimeUnit.MILLISECONDS); LOG.info("The connection try to BMP router {} failed. Next reconnection attempt in {} milliseconds.", this.remoteAddress, this.delay); } }
Example 11
Source File: ClientHandler.java From High-concurrent-server with Apache License 2.0 | 5 votes |
@Override public void channelInactive(ChannelHandlerContext ctx) throws Exception { final EventLoop eventLoop = ctx.channel().eventLoop(); eventLoop.schedule(new Runnable() { @Override public void run() { client.createBootstrap(new Bootstrap(), eventLoop); } }, 1L, TimeUnit.SECONDS); super.channelInactive(ctx); }
Example 12
Source File: RetransmissionHandler.java From smartacus-mqtt-broker with Apache License 2.0 | 5 votes |
private void startTimer(EventLoop eventLoop){ this.timer = eventLoop.schedule(() -> { this.timeout += 5; MqttFixedHeader fixedHeader = new MqttFixedHeader(this.originalMessage.fixedHeader().messageType(), true, this.originalMessage.fixedHeader().qosLevel(), this.originalMessage.fixedHeader().isRetain(), this.originalMessage.fixedHeader().remainingLength()); handler.accept(fixedHeader, originalMessage); startTimer(eventLoop); }, timeout, TimeUnit.SECONDS); }
Example 13
Source File: NettyClientServerCommunicationSystemClientSide.java From library with Apache License 2.0 | 5 votes |
private void scheduleReconnect(final ChannelHandlerContext ctx, int time) { if (closed) { closeChannelAndEventLoop(ctx.channel()); return; } final EventLoop loop = ctx.channel().eventLoop(); loop.schedule(new Runnable() { @Override public void run() { reconnect(ctx); } }, time, TimeUnit.SECONDS); }
Example 14
Source File: UptimeClientHandler.java From netty4.0.27Learn with Apache License 2.0 | 5 votes |
@Override public void channelUnregistered(final ChannelHandlerContext ctx) throws Exception { println("Sleeping for: " + UptimeClient.RECONNECT_DELAY + 's'); final EventLoop loop = ctx.channel().eventLoop(); loop.schedule(new Runnable() { @Override public void run() { println("Reconnecting to: " + UptimeClient.HOST + ':' + UptimeClient.PORT); UptimeClient.connect(UptimeClient.configureBootstrap(new Bootstrap(), loop)); } }, UptimeClient.RECONNECT_DELAY, TimeUnit.SECONDS); }
Example 15
Source File: NettyClientServerCommunicationSystemClientSide.java From protect with MIT License | 5 votes |
private void scheduleReconnect(final ChannelHandlerContext ctx, int time) { if (closed) { closeChannelAndEventLoop(ctx.channel()); return; } final EventLoop loop = ctx.channel().eventLoop(); loop.schedule(new Runnable() { @Override public void run() { reconnect(ctx); } }, time, TimeUnit.SECONDS); }
Example 16
Source File: ClientHandler.java From LuckyFrameClient with GNU Affero General Public License v3.0 | 5 votes |
@Override public void channelInactive(ChannelHandlerContext ctx) { log.info("�����ѶϿ������ڳ�������..."); //ʹ�ù����ж������� final EventLoop eventLoop = ctx.channel().eventLoop(); eventLoop.schedule(() -> { try { NettyClient.start(); } catch (Exception e) { log.error("���ӳ����쳣�����ڳ�������...",e); } }, 1, TimeUnit.SECONDS); ctx.fireChannelInactive(); }
Example 17
Source File: ConnectionListener.java From netty-pubsub with MIT License | 5 votes |
@Override public void operationComplete(ChannelFuture future) throws Exception { if(!future.isSuccess()){ EventLoop eventExecutors = future.channel().eventLoop(); future.channel().close(); if(!eventExecutors.isShuttingDown()){ eventExecutors.schedule(()->{ if(retryCount.get()<=TRY_LIMITE) { LOGGER.error("���ͻ���״̬��STATUS=failed,TIME="+ DateUtils.getCurrentDateTime()+",msg=���ڳ�������,retrys="+retryCount.getAndIncrement()); NettyClient.INSTANCE.start(); }else{ NettyClient.INSTANCE.stop(); LOGGER.error("���������桿�ѳ��������������������ر�"); } },dalayTime,TimeUnit.SECONDS); dalayTime=dalayTime<<1;//��������Խ�࣬�ӳ�ʱ��Խ�� } }else{ LOGGER.info("���ͻ���״̬��STATUS=ACTIVE,TIME="+ DateUtils.getCurrentDateTime()); ChannelHolder.setChannel(future.channel()); // //�ж��ϴ��Ƿ��½ // if(!StringUtil.isEmpty(LastLoginRecord.INSTANCE().getLastToken())){ // //��broker������֤ƾ֤ // System.out.println("���͵�½ƾ֤"); // future.channel().writeAndFlush(new Message(FuncodeEnum.AUTH_USER,(byte)0 , null, LastLoginRecord.INSTANCE().getLastToken().getBytes().length, LastLoginRecord.INSTANCE().getLastToken().getBytes())); // } //�������ɹ��ָ�������� SubRecorder.recover(); dalayTime=1; retryCount.set(0); } }
Example 18
Source File: EurekaUpdatingListener.java From armeria with Apache License 2.0 | 4 votes |
private void scheduleHeartBeat(EventLoop eventLoop, InstanceInfo newInfo) { heartBeatFuture = eventLoop.schedule(new HeartBeatTask(eventLoop, newInfo), newInfo.getLeaseInfo().getRenewalIntervalInSecs(), TimeUnit.SECONDS); }
Example 19
Source File: RefreshingAddressResolverTest.java From armeria with Apache License 2.0 | 4 votes |
@Test void removedWhenExceedingBackoffMaxAttempts() throws Exception { try (TestDnsServer server = new TestDnsServer(ImmutableMap.of( new DefaultDnsQuestion("foo.com.", A), new DefaultDnsResponse(0).addRecord(ANSWER, newAddressRecord("foo.com.", "1.1.1.1", 1)))) ) { final EventLoop eventLoop = eventLoopExtension.get(); final DnsResolverGroupBuilder builder = builder(server); builder.refreshBackoff(Backoff.ofDefault().withMaxAttempts(1)); try (RefreshingAddressResolverGroup group = builder.build(eventLoop)) { final AddressResolver<InetSocketAddress> resolver = group.getResolver(eventLoop); final long start = System.nanoTime(); final Future<InetSocketAddress> foo = resolver.resolve( InetSocketAddress.createUnresolved("foo.com", 36462)); await().untilAsserted(() -> assertThat(foo.isSuccess()).isTrue()); assertThat(foo.getNow().getAddress().getHostAddress()).isEqualTo("1.1.1.1"); server.setResponses(ImmutableMap.of()); // Schedule resolve() every 500 millis to keep cache hits greater than 0. for (int i = 1; i <= 4; i++) { eventLoop.schedule( () -> resolver.resolve(InetSocketAddress.createUnresolved("foo.com", 36462)), 500 * i, TimeUnit.MILLISECONDS); } final ConcurrentMap<String, CompletableFuture<CacheEntry>> cache = group.cache(); await().until(cache::isEmpty); assertThat(System.nanoTime() - start).isGreaterThanOrEqualTo( (long) (TimeUnit.SECONDS.toNanos(1) * 0.9)); // buffer (90%) final Future<InetSocketAddress> future = resolver.resolve( InetSocketAddress.createUnresolved("foo.com", 36462)); await().until(future::isDone); assertThat(future.cause()).isInstanceOf(UnknownHostException.class); } } }
Example 20
Source File: PCEPProtocolSessionPromise.java From bgpcep with Eclipse Public License 1.0 | 4 votes |
@Override public void operationComplete(final ChannelFuture cf) { synchronized (PCEPProtocolSessionPromise.this) { PCEPProtocolSessionPromise.LOG.debug("Promise {} connection resolved", PCEPProtocolSessionPromise.this); Preconditions.checkState(PCEPProtocolSessionPromise.this.pending.equals(cf)); if (PCEPProtocolSessionPromise.this.isCancelled()) { if (cf.isSuccess()) { PCEPProtocolSessionPromise.LOG.debug("Closing channel for cancelled promise {}", PCEPProtocolSessionPromise.this); cf.channel().close(); } } else if (cf.isSuccess()) { PCEPProtocolSessionPromise.LOG.debug("Promise {} connection successful", PCEPProtocolSessionPromise.this); } else { PCEPProtocolSessionPromise.LOG.debug("Attempt to connect to {} failed", PCEPProtocolSessionPromise.this.address, cf.cause()); if (PCEPProtocolSessionPromise.this.retryTimer == 0) { PCEPProtocolSessionPromise.LOG .debug("Retry timer value is 0. Reconnection will not be attempted"); PCEPProtocolSessionPromise.this.setFailure(cf.cause()); return; } final EventLoop loop = cf.channel().eventLoop(); loop.schedule(() -> { synchronized (PCEPProtocolSessionPromise.this) { PCEPProtocolSessionPromise.LOG.debug("Attempting to connect to {}", PCEPProtocolSessionPromise.this.address); final Future<Void> reconnectFuture = PCEPProtocolSessionPromise.this.bootstrap.connect(); reconnectFuture.addListener(BootstrapConnectListener.this); PCEPProtocolSessionPromise.this.pending = reconnectFuture; } }, PCEPProtocolSessionPromise.this.retryTimer, TimeUnit.SECONDS); PCEPProtocolSessionPromise.LOG.debug("Next reconnection attempt in {}s", PCEPProtocolSessionPromise.this.retryTimer); } } }