private void sendSync(boolean sync, List<Object> msg) { if (sync) { RSemaphore semaphore = redisson.getSemaphore(getSyncName(msg.get(2))); semaphore.release(); } }
private void sendSync(boolean sync, List<Object> msg) { if (sync) { RSemaphore semaphore = redisson.getSemaphore(getSyncName(msg.get(2))); semaphore.release(); } }
void waitSync(List<Object> result) { if (result.size() < 2) { return; } Long syncs = (Long) result.get(result.size() - 2); Double syncId = (Double) result.get(result.size() - 1); if (syncs != null && syncs > 0) { RSemaphore semaphore = redisson.getSemaphore(getSyncName(syncId)); try { semaphore.acquire(syncs.intValue()); semaphore.delete(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }
void waitSync(List<Object> result) { if (result.size() < 2) { return; } Long syncs = (Long) result.get(result.size() - 2); Double syncId = (Double) result.get(result.size() - 1); if (syncs != null && syncs > 0) { RSemaphore semaphore = redisson.getSemaphore(getSyncName(syncId)); try { semaphore.acquire(syncs.intValue()); semaphore.delete(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }
@Override public void onMessage(CharSequence channel, String id) { redisson.getAtomicLong(workersCounterName + ":" + id).getAndAdd(workers); redisson.getSemaphore(workersSemaphoreName + ":" + id).release(); } });
@Override public void onMessage(CharSequence channel, String id) { redisson.getAtomicLong(workersCounterName + ":" + id).getAndAdd(workers); redisson.getSemaphore(workersSemaphoreName + ":" + id).release(); } });
@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; }
private void sendSync(boolean sync, List<Object> msg) { if (sync) { RSemaphore semaphore = redisson.getSemaphore(getSyncName(msg.get(2))); semaphore.release(); } }
void waitSync(List<Object> result) { if (result.size() < 2) { return; } Long syncs = (Long) result.get(result.size() - 2); Double syncId = (Double) result.get(result.size() - 1); if (syncs != null && syncs > 0) { RSemaphore semaphore = redisson.getSemaphore(getSyncName(syncId)); try { semaphore.acquire(syncs.intValue()); semaphore.delete(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }
@Override public void onMessage(CharSequence channel, String id) { redisson.getAtomicLong(workersCounterName + ":" + id).getAndAdd(workers); redisson.getSemaphore(workersSemaphoreName + ":" + id).release(); } });
@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; }