Class QueueClient

  • All Implemented Interfaces:
    RequestQueue

    public class QueueClient
    extends java.lang.Object
    implements RequestQueue
    The QueueClient allows you to enqueue various requests.
    Author:
    https://github.com/ljucam [Mario Ljuca]
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static org.slf4j.Logger log  
      static java.lang.String QUEUE_TIMESTAMP  
    • Constructor Summary

      Constructors 
      Constructor Description
      QueueClient​(io.vertx.core.Vertx vertx, org.swisspush.gateleen.monitoring.MonitoringHandler monitoringHandler)
      Creates a new instance of the QueueClient.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      io.vertx.core.Future<java.lang.Void> deleteAllQueueItems​(java.lang.String queue, boolean unlock)
      Deletes all queue items of the provided queue and eventually deletes the lock too.
      io.vertx.core.Future<java.lang.Void> deleteLock​(java.lang.String queue)
      Deletes the lock for the provided queue
      void enqueue​(io.vertx.core.http.HttpServerRequest request, io.vertx.core.buffer.Buffer buffer, java.lang.String queue)
      Enqueues the given request.
      void enqueue​(io.vertx.core.http.HttpServerRequest request, io.vertx.core.MultiMap headers, io.vertx.core.buffer.Buffer buffer, java.lang.String queue)
      Enqueues the given request.
      void enqueue​(org.swisspush.gateleen.core.http.HttpRequest request, java.lang.String queue)
      Enqueues a disconnected request.
      void enqueue​(org.swisspush.gateleen.core.http.HttpRequest request, java.lang.String queue, io.vertx.core.Handler<java.lang.Void> doneHandler)
      Enqueues a disconnected request.
      io.vertx.core.Future<java.lang.Void> enqueueFuture​(org.swisspush.gateleen.core.http.HttpRequest queuedRequest, java.lang.String queue)  
      protected java.lang.String getRedisquesAddress()
      Get the event bus address of redisques.
      void lockedEnqueue​(org.swisspush.gateleen.core.http.HttpRequest queuedRequest, java.lang.String queue, java.lang.String lockRequestedBy, io.vertx.core.Handler<java.lang.Void> doneHandler)
      Enqueues a request into a locked queue.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • log

        public static final org.slf4j.Logger log
    • Constructor Detail

      • QueueClient

        public QueueClient​(io.vertx.core.Vertx vertx,
                           org.swisspush.gateleen.monitoring.MonitoringHandler monitoringHandler)
        Creates a new instance of the QueueClient.
        Parameters:
        vertx - vertx
        monitoringHandler - monitoringHandler
    • Method Detail

      • getRedisquesAddress

        protected java.lang.String getRedisquesAddress()
        Get the event bus address of redisques. Override this method when you want to use a custom redisques address
        Returns:
        the event bus address of redisques
      • enqueue

        public void enqueue​(io.vertx.core.http.HttpServerRequest request,
                            io.vertx.core.buffer.Buffer buffer,
                            java.lang.String queue)
        Enqueues the given request.
        Specified by:
        enqueue in interface RequestQueue
        Parameters:
        request - request
        buffer - buffer
        queue - queue
      • enqueue

        public void enqueue​(io.vertx.core.http.HttpServerRequest request,
                            io.vertx.core.MultiMap headers,
                            io.vertx.core.buffer.Buffer buffer,
                            java.lang.String queue)
        Enqueues the given request.
        Specified by:
        enqueue in interface RequestQueue
        Parameters:
        request - request
        headers - headers
        buffer - buffer
        queue - queue
      • enqueue

        public void enqueue​(org.swisspush.gateleen.core.http.HttpRequest request,
                            java.lang.String queue)
        Enqueues a disconnected request.
        Specified by:
        enqueue in interface RequestQueue
        Parameters:
        request - - selfmade request
        queue - queue
      • enqueue

        public void enqueue​(org.swisspush.gateleen.core.http.HttpRequest request,
                            java.lang.String queue,
                            io.vertx.core.Handler<java.lang.Void> doneHandler)
        Enqueues a disconnected request.
        Specified by:
        enqueue in interface RequestQueue
        Parameters:
        request - - selfmade request
        queue - queue
        doneHandler - a handler which is called as soon as the request is written into the queue.
      • lockedEnqueue

        public void lockedEnqueue​(org.swisspush.gateleen.core.http.HttpRequest queuedRequest,
                                  java.lang.String queue,
                                  java.lang.String lockRequestedBy,
                                  io.vertx.core.Handler<java.lang.Void> doneHandler)
        Enqueues a request into a locked queue.
        Specified by:
        lockedEnqueue in interface RequestQueue
        Parameters:
        queuedRequest - the request to enqueue
        queue - queue
        lockRequestedBy - the user requesting the lock
        doneHandler - a handler which is called as soon as the request is written into the queue.
      • deleteLock

        public io.vertx.core.Future<java.lang.Void> deleteLock​(java.lang.String queue)
        Deletes the lock for the provided queue
        Specified by:
        deleteLock in interface RequestQueue
        Parameters:
        queue - the queue to unlock
        Returns:
        a future which is completed when reply status from redisques was 'OK', fails otherwise
      • deleteAllQueueItems

        public io.vertx.core.Future<java.lang.Void> deleteAllQueueItems​(java.lang.String queue,
                                                                        boolean unlock)
        Deletes all queue items of the provided queue and eventually deletes the lock too.
        Specified by:
        deleteAllQueueItems in interface RequestQueue
        Parameters:
        queue - the queue to delete
        unlock - delete the lock after the queue has been deleted
        Returns:
        a future which is completed when reply from redisques succeeded, fails otherwise
      • enqueueFuture

        public io.vertx.core.Future<java.lang.Void> enqueueFuture​(org.swisspush.gateleen.core.http.HttpRequest queuedRequest,
                                                                  java.lang.String queue)
        Specified by:
        enqueueFuture in interface RequestQueue