@Override public RFuture<Boolean> deleteAsync() { final RPromise<Boolean> result = new RedissonPromise<Boolean>(); RFuture<Long> deleteFuture = redisson.getKeys().deleteAsync( requestQueueName, statusName, tasksCounterName, schedulerQueueName, tasksName, tasksRetryIntervalName); deleteFuture.addListener(new FutureListener<Long>() { @Override public void operationComplete(io.netty.util.concurrent.Future<Long> future) throws Exception { if (!future.isSuccess()) { result.tryFailure(future.cause()); return; } result.trySuccess(future.getNow() > 0); } }); return result; }
@Override public RFuture<Boolean> deleteAsync() { final RPromise<Boolean> result = new RedissonPromise<Boolean>(); RFuture<Long> deleteFuture = redisson.getKeys().deleteAsync( requestQueueName, statusName, tasksCounterName, schedulerQueueName, tasksName, tasksRetryIntervalName); deleteFuture.addListener(new FutureListener<Long>() { @Override public void operationComplete(io.netty.util.concurrent.Future<Long> future) throws Exception { if (!future.isSuccess()) { result.tryFailure(future.cause()); return; } result.trySuccess(future.getNow() > 0); } }); return result; }
@Override public int countActiveWorkers() { String id = generateRequestId(); int subscribers = (int) workersTopic.publish(id); if (subscribers == 0) { return 0; } RSemaphore semaphore = redisson.getSemaphore(workersSemaphoreName + ":" + id); try { semaphore.tryAcquire(subscribers, 10, TimeUnit.MINUTES); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } RAtomicLong atomicLong = redisson.getAtomicLong(workersCounterName + ":" + id); long result = atomicLong.get(); redisson.getKeys().delete(semaphore, atomicLong); return (int) result; }
@Override public int countActiveWorkers() { String id = generateRequestId(); int subscribers = (int) workersTopic.publish(id); if (subscribers == 0) { return 0; } RSemaphore semaphore = redisson.getSemaphore(workersSemaphoreName + ":" + id); try { semaphore.tryAcquire(subscribers, 10, TimeUnit.MINUTES); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } RAtomicLong atomicLong = redisson.getAtomicLong(workersCounterName + ":" + id); long result = atomicLong.get(); redisson.getKeys().delete(semaphore, atomicLong); return (int) result; }
@Override public RFuture<Boolean> deleteAsync() { final RPromise<Boolean> result = new RedissonPromise<Boolean>(); RFuture<Long> deleteFuture = redisson.getKeys().deleteAsync( requestQueueName, statusName, tasksCounterName, schedulerQueueName, tasksName, tasksRetryIntervalName); deleteFuture.addListener(new FutureListener<Long>() { @Override public void operationComplete(io.netty.util.concurrent.Future<Long> future) throws Exception { if (!future.isSuccess()) { result.tryFailure(future.cause()); return; } result.trySuccess(future.getNow() > 0); } }); return result; }
@Override public int countActiveWorkers() { String id = generateRequestId(); int subscribers = (int) workersTopic.publish(id); if (subscribers == 0) { return 0; } RSemaphore semaphore = redisson.getSemaphore(workersSemaphoreName + ":" + id); try { semaphore.tryAcquire(subscribers, 10, TimeUnit.MINUTES); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } RAtomicLong atomicLong = redisson.getAtomicLong(workersCounterName + ":" + id); long result = atomicLong.get(); redisson.getKeys().delete(semaphore, atomicLong); return (int) result; }