Class BaseUniversalJdbcQueue<T extends BaseUniversalQueueMessage<ID>,​ID>

    • Constructor Detail

      • BaseUniversalJdbcQueue

        public BaseUniversalJdbcQueue()
    • Method Detail

      • markFifo

        public BaseUniversalJdbcQueue<T,​ID> markFifo​(boolean fifo)
        When set to true, queue message with lower id is ensured to be taken first. When set to false, order of taken queue messages depends on the DBMS (usually FIFO in most cases).
        Parameters:
        fifo -
        Returns:
      • isFifo

        public boolean isFifo()
        If true, queue message with lower id is ensured to be taken first. Otherwise, order of taken queue messages depends on the DBMS (usually FIFO in most cases).
        Returns:
      • getFifo

        public boolean getFifo()
        Alias of isFifo().
        Returns:
      • ensureMessageType

        protected <X> X ensureMessageType​(IQueueMessage<ID,​byte[]> msg,
                                          Class<X> msgClass)
        Throw IllegalArgumentException if msg argument is not of type specified by msgClass.
        Type Parameters:
        X -
        Parameters:
        msg -
        msgClass -
        Returns:
        the msg casted to X
        Since:
        1.0.0
      • createMessge

        protected T createMessge​(Map<String,​Object> data)
        Create a message object from input data.
        Parameters:
        data -
        Returns:
        Since:
        1.0.0
      • selectMessages

        protected List<T> selectMessages​(Connection conn,
                                         String sql,
                                         Map<String,​Object> params)
        Convenient method to query list of messages.
        Parameters:
        conn -
        sql -
        params -
        Returns:
        Since:
        1.0.0
      • take

        public T take()
        Take a message out of queue.

        Implementation flow:

        • Read message from head of queue storage.
        • Write message to ephemeral storage.
        • Remove message from queue storage.

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

        Specified by:
        take in interface IQueue<T extends BaseUniversalQueueMessage<ID>,​ID>
        Overrides:
        take in class JdbcQueue<ID,​byte[]>
        Returns: