@Override public void start() throws Exception { System.out.println(String.format("StatsConsumerApp [%s] start()", id)); vertx.eventBus().<Integer>consumer("stats", message -> { Integer stats = message.body(); System.out.println(">> received " + stats); vertx.sharedData().getCounter("globalStatsCounter", ar -> { if (ar.succeeded()) { Counter counter = ar.result(); counter.addAndGet(stats.longValue(), opAr -> { if (opAr.succeeded()) { System.out.println("Stats added to global stats counter"); } else { System.out.println(opAr.cause()); } }); } else { System.out.println(ar.cause()); } }); }); }
@Test public void testAddAndGet() { getVertx().sharedData().getCounter("foo", ar -> { assertTrue(ar.succeeded()); Counter counter = ar.result(); counter.addAndGet(2, ar2 -> { assertTrue(ar2.succeeded()); assertEquals(2l, ar2.result().longValue()); getVertx().sharedData().getCounter("foo", ar3 -> { assertTrue(ar3.succeeded()); Counter counter2 = ar3.result(); counter2.addAndGet(2l, ar4 -> { assertTrue(ar4.succeeded()); assertEquals(4l, ar4.result().longValue()); testComplete(); }); }); }); }); await(); }
@Test public void testIllegalArguments() throws Exception { assertNullPointerException(() -> getVertx().sharedData().getCounter(null, ar -> {})); assertNullPointerException(() -> getVertx().sharedData().getCounter("foo", null)); getVertx().sharedData().getCounter("foo", ar -> { Counter counter = ar.result(); assertNullPointerException(() -> counter.get(null)); assertNullPointerException(() -> counter.incrementAndGet(null)); assertNullPointerException(() -> counter.getAndIncrement(null)); assertNullPointerException(() -> counter.decrementAndGet(null)); assertNullPointerException(() -> counter.addAndGet(1, null)); assertNullPointerException(() -> counter.getAndAdd(1, null)); assertNullPointerException(() -> counter.compareAndSet(1, 1, null)); testComplete(); }); await(); }
@Test public void testAddAndGet() { getVertx().sharedData().getCounter("foo", ar -> { assertTrue(ar.succeeded()); Counter counter = ar.result(); counter.addAndGet(2, ar2 -> { assertTrue(ar2.succeeded()); assertEquals(2l, ar2.result().longValue()); getVertx().sharedData().getCounter("foo", ar3 -> { assertTrue(ar3.succeeded()); Counter counter2 = ar3.result(); counter2.addAndGet(2l, ar4 -> { assertTrue(ar4.succeeded()); assertEquals(4l, ar4.result().longValue()); testComplete(); }); }); }); }); await(); }
/** * Add the value to the counter atomically and return the new count * @param value the value to add * @param resultHandler handler which will be passed the value */ public void addAndGet(long value, Handler<AsyncResult<Long>> resultHandler) { delegate.addAndGet(value, resultHandler); }
/** * Add the value to the counter atomically and return the new count * @param value the value to add * @param resultHandler handler which will be passed the value */ public void addAndGet(long value, Handler<AsyncResult<Long>> resultHandler) { delegate.addAndGet(value, resultHandler); }
private static void setCircuitBreakerReleaseTimer( int _retry, long _release, Vertx vertx, Counter counter) { vertx.setTimer( _release, timer -> counter.addAndGet(Integer.valueOf(_retry + 1).longValue(), val -> {})); }
private static void setCircuitBreakerReleaseTimer( int _retry, long _release, Vertx vertx, Counter counter) { vertx.setTimer( _release, timer -> counter.addAndGet(Integer.valueOf(_retry + 1).longValue(), val -> {})); }
private static <T> void executeInitialState( int retry, long timeout, ThrowableFutureConsumer<T> _userOperation, VxmsShared vxmsShared, Future<T> operationResult, Lock lock, Counter counter) { final long initialRetryCounterValue = (long) (retry + 1); counter.addAndGet( initialRetryCounterValue, rHandler -> executeDefaultState(timeout, _userOperation, vxmsShared, operationResult, lock)); }
private static <T> void executeInitialState( int _retry, long _timeout, ThrowableFutureConsumer<T> _userOperation, VxmsShared vxmsShared, Future<T> operationResult, Lock lock, Counter counter) { final long initialRetryCounterValue = (long) (_retry + 1); counter.addAndGet( initialRetryCounterValue, rHandler -> executeDefaultState(_timeout, _userOperation, vxmsShared, operationResult, lock)); }
private static void resetLockTimer( VxmsShared vxmsShared, int retryCount, long circuitBreakerTimeout, Counter counter) { final Vertx vertx = vxmsShared.getVertx(); vertx.setTimer( circuitBreakerTimeout, timer -> counter.addAndGet(Integer.valueOf(retryCount + 1).longValue(), val -> {})); }
private static void resetLockTimer( VxmsShared vxmsShared, int retryCount, long circuitBreakerTimeout, Counter counter) { final Vertx vertx = vxmsShared.getVertx(); vertx.setTimer( circuitBreakerTimeout, timer -> counter.addAndGet(Integer.valueOf(retryCount + 1).longValue(), val -> {})); }
private void cleanupConnection(String address, MessageConsumer<JsonObject> consumer) { consumer.unregister(); vertx.eventBus().send(address, new JsonObject().put("event", "gone")); activeUserCounter.addAndGet(-1, x -> { }); }
private static void setCircuitBreakerReleaseTimer( VxmsShared vxmsShared, int _retry, long _circuitBreakerTimeout, Counter counter) { final Vertx vertx = vxmsShared.getVertx(); vertx.setTimer( _circuitBreakerTimeout, timer -> { final long initialRetryCounterValue = (long) (_retry + 1); counter.addAndGet(initialRetryCounterValue, val -> {}); }); }
private static void setCircuitBreakerReleaseTimer( VxmsShared vxmsShared, int _retry, long _circuitBreakerTimeout, Counter counter) { final Vertx vertx = vxmsShared.getVertx(); vertx.setTimer( _circuitBreakerTimeout, timer -> { final long initialRetryCounterValue = (long) (_retry + 1); counter.addAndGet(initialRetryCounterValue, val -> {}); }); }
private static void setCircuitBreakerReleaseTimer( VxmsShared vxmsShared, int _retry, long _circuitBreakerTimeout, Counter counter) { final long initialRetryCounterValue = (long) (_retry + 1); final Vertx vertx = vxmsShared.getVertx(); vertx.setTimer( _circuitBreakerTimeout, timer -> counter.addAndGet(initialRetryCounterValue, val -> { })); }
private static void setCircuitBreakerReleaseTimer( int _retry, long _release, VxmsShared vxmsShared, Counter counter) { final long initialRetryCounterValue = (long) (_retry + 1); final Vertx vertx = vxmsShared.getVertx(); vertx.setTimer(_release, timer -> counter.addAndGet(initialRetryCounterValue, val -> {})); }
private static void setCircuitBreakerReleaseTimer( VxmsShared vxmsShared, int _retry, long _circuitBreakerTimeout, Counter counter) { final long initialRetryCounterValue = (long) (_retry + 1); final Vertx vertx = vxmsShared.getVertx(); vertx.setTimer( _circuitBreakerTimeout, timer -> counter.addAndGet(initialRetryCounterValue, val -> {})); }
private static void setCircuitBreakerReleaseTimer( int _retry, long _release, VxmsShared vxmsShared, Counter counter) { final long initialRetryCounterValue = (long) (_retry + 1); final Vertx vertx = vxmsShared.getVertx(); vertx.setTimer(_release, timer -> counter.addAndGet(initialRetryCounterValue, val -> {})); }
@Test public void testIllegalArguments() throws Exception { assertNullPointerException(() -> getVertx().sharedData().getCounter(null, ar -> {})); assertNullPointerException(() -> getVertx().sharedData().getCounter("foo", null)); getVertx().sharedData().getCounter("foo", ar -> { Counter counter = ar.result(); assertNullPointerException(() -> counter.get(null)); assertNullPointerException(() -> counter.incrementAndGet(null)); assertNullPointerException(() -> counter.getAndIncrement(null)); assertNullPointerException(() -> counter.decrementAndGet(null)); assertNullPointerException(() -> counter.addAndGet(1, null)); assertNullPointerException(() -> counter.getAndAdd(1, null)); assertNullPointerException(() -> counter.compareAndSet(1, 1, null)); testComplete(); }); await(); }