Class AbstractQueue<ID,​DATA>

    • Constructor Detail

      • AbstractQueue

        public AbstractQueue()
    • Method Detail

      • getQueueName

        public String getQueueName()
        Queue's name.
        Returns:
        Since:
        0.6.0
      • setQueueName

        public AbstractQueue<ID,​DATA> setQueueName​(String queueName)
        Queue's name.
        Parameters:
        queueName -
        Returns:
        Since:
        0.6.0
      • getMessageFactory

        public IQueueMessageFactory<ID,​DATA> getMessageFactory()
        Factory to create queue messages.
        Returns:
        Since:
        0.7.0
      • getSerDeser

        public com.github.ddth.commons.serialization.ISerDeser getSerDeser()
        Message serializer/deserializer.
        Returns:
        Since:
        1.0.0
      • setSerDeser

        public AbstractQueue<ID,​DATA> setSerDeser​(com.github.ddth.commons.serialization.ISerDeser serDeser)
        Message serializer/deserializer.
        Parameters:
        serDeser -
        Returns:
        Since:
        1.0.0
      • destroy

        public void destroy()
        Destroy method.
      • serialize

        protected byte[] serialize​(IQueueMessage<ID,​DATA> queueMsg)
        Serialize a queue message to bytes.
        Parameters:
        queueMsg -
        Returns:
        Since:
        0.7.0
      • deserialize

        protected <T extends IQueueMessage<ID,​DATA>> T deserialize​(byte[] data,
                                                                         Class<T> clazz)
        Deserialize a queue message from bytes (was generated by serialize(IQueueMessage).
        Parameters:
        data -
        clazz -
        Returns:
        Since:
        0.7.0
      • queue

        public boolean queue​(IQueueMessage<ID,​DATA> _msg)
        Queue a message.

        Implementation flow:

        • Put message to tail of queue storage.

        Specified by:
        queue in interface IQueue<ID,​DATA>
        Returns:
      • requeue

        public boolean requeue​(IQueueMessage<ID,​DATA> _msg)
        Re-queue a message.

        Implementation flow:

        • Put message to the queue storage (head or tail position depends on the queue implementation); and increase message's re-queue count & update message's queue timestamp.
        • Remove message from ephemeral storage.

        Note: ephemeral storage implementation is optional, depends on implementation.

        Specified by:
        requeue in interface IQueue<ID,​DATA>
        Returns:
      • requeueSilent

        public boolean requeueSilent​(IQueueMessage<ID,​DATA> _msg)
        Silently re-queue a message.

        Implementation flow:

        • Put message to the queue storage (head or tail position depends on the queue implementation); do NOT increase message's re-queue count and do NOT update message's queue timestamp.
        • Remove message from ephemeral storage.

        Note: ephemeral storage implementation is optional, depends on implementation.

        Specified by:
        requeueSilent in interface IQueue<ID,​DATA>
        Returns: