@Override protected int runCmd(DistributedLogClient client) throws Exception { RateLimiter rateLimiter = RateLimiter.create(rate); for (String stream : streams) { rateLimiter.acquire(); try { Await.result(client.release(stream)); System.out.println("Release ownership of stream " + stream); } catch (Exception e) { System.err.println("Failed to release ownership of stream " + stream); throw e; } } return 0; }
private void doMoveStream(final String streamName) throws Exception { Await.result(srcClient.release(streamName).flatMap(new Function<Void, Future<Void>>() { @Override public Future<Void> apply(Void result) { return targetMonitor.check(streamName).addEventListener(new FutureEventListener<Void>() { @Override public void onSuccess(Void value) { logger.info("Moved stream {} from {} to {}.", new Object[]{streamName, source, target}); } @Override public void onFailure(Throwable cause) { logger.info("Failed to move stream {} from region {} to {} : ", new Object[]{streamName, source, target, cause}); } }); } })); }
private void doMoveStream(final String stream, final Host from, final Host to) throws Exception { logger.info("Moving stream {} from {} to {}.", new Object[] { stream, from.address, to.address }); Await.result(from.getClient().release(stream).flatMap(new Function<Void, Future<Void>>() { @Override public Future<Void> apply(Void result) { logger.info("Released stream {} from {}.", stream, from.address); return to.getMonitor().check(stream).addEventListener(new FutureEventListener<Void>() { @Override public void onSuccess(Void value) { logger.info("Moved stream {} from {} to {}.", new Object[] { stream, from.address, to.address }); } @Override public void onFailure(Throwable cause) { logger.info("Failed to move stream {} from {} to {} : ", new Object[] { stream, from.address, to.address, cause }); } }); } })); }