public class RedisChannelPriorityMessageStore extends RedisChannelMessageStore implements PriorityCapableChannelMessageStore
PriorityCapableChannelMessageStore
that uses lists to back a QueueChannel.
Messages are removed in priority order (IntegrationMessageHeaderAccessor.PRIORITY
).
Priorities 0-9 are supported (9 the highest); invalid priority values are treated with the same priority (none)
as messages with no priority header (retrieved after any messages that have a priority).
Requires that groupId is a String.
Constructor and Description |
---|
RedisChannelPriorityMessageStore(RedisConnectionFactory connectionFactory) |
Modifier and Type | Method and Description |
---|---|
MessageGroup |
addMessageToGroup(Object groupId,
Message<?> message)
Store a message with an association to a group id.
|
int |
getMessageCountForAllMessageGroups() |
MessageGroup |
getMessageGroup(Object groupId)
Return all Messages currently in the MessageStore that were stored using
BasicMessageGroupStore.addMessageToGroup(Object, Message) with this group id. |
int |
getMessageGroupCount() |
boolean |
isPriorityEnabled() |
int |
messageGroupSize(Object groupId)
Returns the size of this MessageGroup.
|
Message<?> |
pollMessageFromGroup(Object groupId)
Polls Message from this
MessageGroup (in FIFO style if supported by the implementation)
while also removing the polled Message |
void |
removeMessageGroup(Object groupId)
Remove the message group with this id.
|
afterPropertiesSet, getBeanName, getMessageGroupFactory, getRedisTemplate, setBeanClassLoader, setBeanName, setMessageGroupFactory, setValueSerializer
public RedisChannelPriorityMessageStore(RedisConnectionFactory connectionFactory)
public boolean isPriorityEnabled()
isPriorityEnabled
in interface PriorityCapableChannelMessageStore
@ManagedAttribute public int messageGroupSize(Object groupId)
BasicMessageGroupStore
messageGroupSize
in interface BasicMessageGroupStore
messageGroupSize
in class RedisChannelMessageStore
groupId
- The group identifier.public MessageGroup getMessageGroup(Object groupId)
BasicMessageGroupStore
BasicMessageGroupStore.addMessageToGroup(Object, Message)
with this group id.getMessageGroup
in interface BasicMessageGroupStore
getMessageGroup
in class RedisChannelMessageStore
groupId
- The group identifier.public MessageGroup addMessageToGroup(Object groupId, Message<?> message)
BasicMessageGroupStore
addMessageToGroup
in interface BasicMessageGroupStore
addMessageToGroup
in class RedisChannelMessageStore
groupId
- The group id to store the message under.message
- A message.public Message<?> pollMessageFromGroup(Object groupId)
BasicMessageGroupStore
MessageGroup
(in FIFO style if supported by the implementation)
while also removing the polled Message
pollMessageFromGroup
in interface BasicMessageGroupStore
pollMessageFromGroup
in class RedisChannelMessageStore
groupId
- The group identifier.@ManagedAttribute public int getMessageGroupCount()
getMessageGroupCount
in class RedisChannelMessageStore
public void removeMessageGroup(Object groupId)
BasicMessageGroupStore
removeMessageGroup
in interface BasicMessageGroupStore
removeMessageGroup
in class RedisChannelMessageStore
groupId
- The id of the group to remove.@ManagedAttribute public int getMessageCountForAllMessageGroups()
getMessageCountForAllMessageGroups
in class RedisChannelMessageStore