Interface RReliableTopicAsync

  • All Superinterfaces:
    RExpirableAsync, RObjectAsync
    All Known Subinterfaces:
    RReliableTopic
    All Known Implementing Classes:
    RedissonReliableTopic

    public interface RReliableTopicAsync
    extends RExpirableAsync
    Asynchronous interface for Reliable topic based on Redis Stream object.

    Dedicated Redis connection is allocated per instance (subscriber) of this object. Messages are delivered to all listeners attached to the same Redis setup.

    Requires Redis 5.0.0 and higher.

    Author:
    Nikita Koksharov
    • Method Detail

      • sizeAsync

        RFuture<Long> sizeAsync()
        Amount of messages stored in Redis Stream object.
        Returns:
        amount of messages
      • publishAsync

        RFuture<Long> publishAsync​(Object message)
        Publish the message to all subscribers of this topic asynchronously. Each subscriber may have multiple listeners.
        Parameters:
        message - to send
        Returns:
        number of subscribers that received the message
      • addListenerAsync

        <M> RFuture<String> addListenerAsync​(Class<M> type,
                                             MessageListener<M> listener)
        Subscribes to this topic. MessageListener.onMessage method is called when any message is published on this topic.

        Though messages broadcasted across all topic instances, listener is attached to this topic instance.

        Watchdog is started when listener was registered.

        Type Parameters:
        M - - type of message
        Parameters:
        type - - type of message
        listener - for messages
        Returns:
        id of listener attached to this topic instance
        See Also:
        Config.setReliableTopicWatchdogTimeout(long), MessageListener
      • removeListenerAsync

        RFuture<Void> removeListenerAsync​(String... listenerIds)
        Removes the listener by id attached to this topic instance
        Parameters:
        listenerIds - - listener ids
        Returns:
        void
      • removeAllListenersAsync

        RFuture<Void> removeAllListenersAsync()
        Removes all listeners attached to this topic instance
      • countSubscribersAsync

        RFuture<Integer> countSubscribersAsync()
        Returns amount of subscribers to this topic across all Redisson instances. Each subscriber may have multiple listeners.
        Returns:
        amount of subscribers