Search in sources :

Example 1 with TransferListener

use of org.redisson.pubsub.TransferListener in project redisson by redisson.

the class MasterSlaveConnectionManager method subscribe.

public RFuture<PubSubConnectionEntry> subscribe(final Codec codec, final String channelName, final RedisPubSubListener<?> listener) {
    final AsyncSemaphore lock = getSemaphore(channelName);
    final RPromise<PubSubConnectionEntry> result = newPromise();
    lock.acquire(new Runnable() {

        @Override
        public void run() {
            RFuture<PubSubConnectionEntry> future = subscribe(codec, channelName, listener, lock);
            future.addListener(new TransferListener<PubSubConnectionEntry>(result));
        }
    });
    return result;
}
Also used : TransferListener(org.redisson.pubsub.TransferListener) AsyncSemaphore(org.redisson.pubsub.AsyncSemaphore) RFuture(org.redisson.api.RFuture)

Example 2 with TransferListener

use of org.redisson.pubsub.TransferListener in project redisson by redisson.

the class MasterSlaveConnectionManager method psubscribe.

@Override
public RFuture<PubSubConnectionEntry> psubscribe(final String channelName, final Codec codec, final RedisPubSubListener<?> listener) {
    final AsyncSemaphore lock = getSemaphore(channelName);
    final RPromise<PubSubConnectionEntry> result = newPromise();
    lock.acquire(new Runnable() {

        @Override
        public void run() {
            RFuture<PubSubConnectionEntry> future = psubscribe(channelName, codec, listener, lock);
            future.addListener(new TransferListener<PubSubConnectionEntry>(result));
        }
    });
    return result;
}
Also used : TransferListener(org.redisson.pubsub.TransferListener) AsyncSemaphore(org.redisson.pubsub.AsyncSemaphore) RFuture(org.redisson.api.RFuture)

Aggregations

RFuture (org.redisson.api.RFuture)2 AsyncSemaphore (org.redisson.pubsub.AsyncSemaphore)2 TransferListener (org.redisson.pubsub.TransferListener)2