Class RabbitMQPublisher

java.lang.Object
io.vertx.reactivex.rabbitmq.RabbitMQPublisher
All Implemented Interfaces:
io.vertx.lang.rx.RxDelegate

public class RabbitMQPublisher extends Object implements io.vertx.lang.rx.RxDelegate
A reliable publisher that
  • Queues up messages internally until it can successfully call basicPublish.
  • Notifies the caller using a robust ID (not delivery tag) when the message is confirmed by rabbit.
This is a layer above the RabbitMQClient that provides a lot of standard implementation when guaranteed at least once delivery is required. If confirmations are not required do not use this publisher as it does have overhead.

NOTE: This class has been automatically generated from the original non RX-ified interface using Vert.x codegen.

  • Field Details

    • __TYPE_ARG

      public static final io.vertx.lang.rx.TypeArg<RabbitMQPublisher> __TYPE_ARG
  • Constructor Details

    • RabbitMQPublisher

      public RabbitMQPublisher(RabbitMQPublisher delegate)
    • RabbitMQPublisher

      public RabbitMQPublisher(Object delegate)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getDelegate

      public RabbitMQPublisher getDelegate()
      Specified by:
      getDelegate in interface io.vertx.lang.rx.RxDelegate
    • create

      public static RabbitMQPublisher create(Vertx vertx, RabbitMQClient client, RabbitMQPublisherOptions options)
      Create and return a publisher using the specified client.
      Parameters:
      vertx - the vertx instance.
      client - the RabbitMQClient.
      options - options for the publisher.
      Returns:
      the publisher
    • start

      public Future<Void> start()
      Start the rabbitMQ publisher. The RabbitMQClient should have been started before this.
      Returns:
    • rxStart

      public Completable rxStart()
      Start the rabbitMQ publisher. The RabbitMQClient should have been started before this.
      Returns:
    • stop

      public Future<Void> stop()
      Stop the rabbitMQ publisher. Calling this is optional, but it gives the opportunity to drain the send queue without losing messages. Future calls to publish will be ignored.
      Returns:
    • rxStop

      public Completable rxStop()
      Stop the rabbitMQ publisher. Calling this is optional, but it gives the opportunity to drain the send queue without losing messages. Future calls to publish will be ignored.
      Returns:
    • restart

      public void restart()
      Undo the effects of calling so that publish may be called again. It is harmless to call restart() when has not been called, however if restart() is called whilst is being processed the will never complete.
    • getConfirmationStream

      public ReadStream<RabbitMQPublisherConfirmation> getConfirmationStream()
      Get the ReadStream that contains the message IDs for confirmed messages. The message IDs in this ReadStream are taken from the message properties, if these message IDs are not set then this ReadStream will contain nulls and using this publisher will be pointless.
      Returns:
      the ReadStream that contains the message IDs for confirmed messages.
    • queueSize

      public int queueSize()
      Get the number of published, but not sent, messages.
      Returns:
      the number of published, but not sent, messages.
    • publish

      public Future<Void> publish(String exchange, String routingKey, com.rabbitmq.client.BasicProperties properties, Buffer body)
      Publish a message.
      Parameters:
      exchange -
      routingKey -
      properties -
      body -
      Returns:
    • rxPublish

      public Completable rxPublish(String exchange, String routingKey, com.rabbitmq.client.BasicProperties properties, Buffer body)
      Publish a message.
      Parameters:
      exchange -
      routingKey -
      properties -
      body -
      Returns:
    • publishConfirm

      public Future<Long> publishConfirm(String exchange, String routingKey, com.rabbitmq.client.BasicProperties properties, Buffer body)
      Publish a message and complete when publish confirm has returned.
      Parameters:
      exchange -
      routingKey -
      properties -
      body -
      Returns:
    • rxPublishConfirm

      public Single<Long> rxPublishConfirm(String exchange, String routingKey, com.rabbitmq.client.BasicProperties properties, Buffer body)
      Publish a message and complete when publish confirm has returned.
      Parameters:
      exchange -
      routingKey -
      properties -
      body -
      Returns:
    • newInstance

      public static RabbitMQPublisher newInstance(RabbitMQPublisher arg)