Class MessageBroker
- java.lang.Object
-
- com.github.dbmdz.flusswerk.framework.rabbitmq.MessageBroker
-
public class MessageBroker extends Object
A MessageBroker provides a high level API to interact with an MessageBroker like RabbitMQ and provides the framework engines logic for message operations like sending, retrieving or rejecting for messages.
-
-
Constructor Summary
Constructors Constructor Description MessageBroker(RoutingProperties routing, RabbitClient rabbitClient)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
ack(Message message)
Acknowledges a message to remove it from the queue.void
fail(Message message)
Map<String,Long>
getRetryMessageCounts()
Message
receive()
Gets one message from the input queue but does not acknowledge it.Message
receive(String queueName)
Gets one message from the queue but does not acknowledge it.boolean
reject(Message message)
Rejects a messaging and takes care of proper dead lettering, retries and, if the message failed too often, routing to the failed queue.void
send(Collection<? extends Message> messages)
Deprecated.UseTopic.send(Message)
instead
-
-
-
Constructor Detail
-
MessageBroker
public MessageBroker(RoutingProperties routing, RabbitClient rabbitClient) throws IOException
- Throws:
IOException
-
-
Method Detail
-
send
@Deprecated public void send(Collection<? extends Message> messages) throws IOException
Deprecated.UseTopic.send(Message)
insteadSends messages to the default output queue as JSON document.- Parameters:
messages
- the message to send.- Throws:
IOException
- if sending the message fails.
-
receive
public Message receive(String queueName) throws IOException, InvalidMessageException
Gets one message from the queue but does not acknowledge it. To do so, useack(Message)
.- Parameters:
queueName
- the queue to receive.- Returns:
- the received message.
- Throws:
IOException
- if communication with RabbitMQ failed.InvalidMessageException
- if the message could not be read and deserialized
-
receive
public Message receive() throws IOException
Gets one message from the input queue but does not acknowledge it. To do so, useack(Message)
.- Returns:
- the received message.
- Throws:
IOException
- if communication with RabbitMQ failed.
-
ack
public void ack(Message message) throws IOException
Acknowledges a message to remove it from the queue.- Parameters:
message
- the message to acknowledge.- Throws:
IOException
- if communication with RabbitMQ failed.
-
reject
public boolean reject(Message message) throws IOException
Rejects a messaging and takes care of proper dead lettering, retries and, if the message failed too often, routing to the failed queue.- Parameters:
message
- the message to reject- Returns:
- true if retry, false if failed
- Throws:
IOException
- if communication with RabbitMQ failed
-
fail
public void fail(Message message) throws IOException
- Throws:
IOException
-
getRetryMessageCounts
public Map<String,Long> getRetryMessageCounts() throws IOException
- Throws:
IOException
-
-