void reconnect(final Callback<Transport> onConnect) { long reconnectDelay = mqtt.reconnectDelay; if( reconnectDelay> 0 && mqtt.reconnectBackOffMultiplier > 1.0 ) { reconnectDelay = (long) Math.pow(mqtt.reconnectDelay*reconnects, mqtt.reconnectBackOffMultiplier); } reconnectDelay = Math.min(reconnectDelay, mqtt.reconnectDelayMax); reconnects += 1; queue.executeAfter(reconnectDelay, TimeUnit.MILLISECONDS, new Task() { @Override public void run() { if(disconnected) { onConnect.onFailure(createDisconnectedError()); } else { try { createTransport(onConnect); } catch (Exception e) { onConnect.onFailure(e); } } } }); }
final long suspends = suspendChanges.get(); pingedAt = now; queue.executeAfter(CallbackConnection.this.mqtt.getKeepAlive(), TimeUnit.SECONDS, new Task() { @Override public void run() {
private void schedualRateAllowanceReset() { dispatchQueue.executeAfter(1, TimeUnit.SECONDS, new Runnable(){ public void run() { if( !socketState.is(CONNECTED.class) ) { return; } rateLimitingChannel.resetAllowance(); schedualRateAllowanceReset(); } }); }
private void schedualRateAllowanceReset() { dispatchQueue.executeAfter(1, TimeUnit.SECONDS, new Task(){ public void run() { if( !socketState.is(CONNECTED.class) ) { return; } rateLimitingChannel.resetAllowance(); schedualRateAllowanceReset(); } }); }
private void schedualRateAllowanceReset() { dispatchQueue.executeAfter(1, TimeUnit.SECONDS, new Runnable(){ public void run() { if (!socketState.isConnected()) { return; } rateLimitingChannel.resetAllowance(); schedualRateAllowanceReset(); } }); }
void reconnect(final Callback<Transport> onConnect) { long reconnectDelay = mqtt.reconnectDelay; if( reconnectDelay> 0 && mqtt.reconnectBackOffMultiplier > 1.0 ) { reconnectDelay = (long) Math.pow(mqtt.reconnectDelay*reconnects, mqtt.reconnectBackOffMultiplier); } reconnectDelay = Math.min(reconnectDelay, mqtt.reconnectDelayMax); reconnects += 1; queue.executeAfter(reconnectDelay, TimeUnit.MILLISECONDS, new Task() { @Override public void run() { if(disconnected) { onConnect.onFailure(createDisconnectedError()); } else { try { createTransport(onConnect); } catch (Exception e) { onConnect.onFailure(e); } } } }); }
private void schedule(final short session, long interval, final Task func) { if (this.session == session) { transport.getDispatchQueue().executeAfter(interval, TimeUnit.MILLISECONDS, new Task() { public void run() { synchronized (lock) { if (HeartBeatMonitor.this.session == session) { func.run(); } } } }); } }
public void onRefill(final Transport transport) { while (pending.size() > 0 && !transport.full()) { Pair pair = pending.removeFirst(); boolean accepted = doOffer(transport, pair.command, pair.id); assert accepted: "Should have been accepted since the transport was not full"; } if( transport.full() ) { transports.get(transport).time = 0L; } else { final long time = System.currentTimeMillis(); transports.get(transport).time = time; if (evictionDelay > 0) { queue.executeAfter(evictionDelay, TimeUnit.MILLISECONDS, new Runnable() { public void run() { TransportState state = transports.get(transport); if (state != null && state.time == time) { transports.remove(transport); transport.stop(); } } }); } } }
public void onRefill(final Transport transport) { while (pending.size() > 0 && !transport.full()) { Pair pair = pending.removeFirst(); boolean accepted = doOffer(transport, pair.command, pair.id); assert accepted: "Should have been accepted since the transport was not full"; } if( transport.full() ) { transports.get(transport).time = 0L; } else { final long time = System.currentTimeMillis(); transports.get(transport).time = time; if (evictionDelay > 0) { queue.executeAfter(evictionDelay, TimeUnit.MILLISECONDS, new Runnable() { public void run() { TransportState state = transports.get(transport); if (state != null && state.time == time) { transports.remove(transport); transport.stop(); } } }); } } }
public void start() { session++; readSuspendedInterval = false; if (writeInterval != 0) { if (initialWriteCheckDelay != 0) { transport.getDispatchQueue().executeAfter(initialWriteCheckDelay, TimeUnit.MILLISECONDS, new Task() { public void run() { scheduleCheckWrites(session); } }); } else { scheduleCheckWrites(session); } } if (readInterval != 0) { if (initialReadCheckDelay != 0) { transport.getDispatchQueue().executeAfter(initialReadCheckDelay, TimeUnit.MILLISECONDS, new Task() { public void run() { scheduleCheckReads(session); } }); } else { scheduleCheckReads(session); } } }
final long suspends = suspendChanges.get(); pingedAt = now; queue.executeAfter(CallbackConnection.this.mqtt.getKeepAlive(), TimeUnit.SECONDS, new Task() { @Override public void run() {
public <T> T die(MessageSupport.Message response) { if (!dead) { command_handler.apply("failure"); dead = true; command_handler = dead_handler; status = new Fn0<String>() { @Override public String apply() { return "shuting down"; } }; if (response != null) { connection().transport().resumeRead(); connection_sink.offer(new Request((short) 0, response, null)); // TODO: if there are too many open connections we should just close the connection // without waiting for the error to get sent to the client. queue().executeAfter(die_delay(), TimeUnit.MILLISECONDS, new Task() { @Override public void run() { connection().stop(NOOP); } }); } else { connection().stop(NOOP); } } throw new Break(); }