public class RedisChannelMessageStore extends java.lang.Object implements ChannelMessageStore, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean
ChannelMessageStore
that uses a list to back a QueueChannel.
Requires setBeanName(String)
which is used as part of the key.
Constructor and Description |
---|
RedisChannelMessageStore(org.springframework.data.redis.connection.RedisConnectionFactory connectionFactory)
Construct a message store that uses Java Serialization for messages.
|
Modifier and Type | Method and Description |
---|---|
MessageGroup |
addMessageToGroup(java.lang.Object groupId,
org.springframework.messaging.Message<?> message)
Store a message with an association to a group id.
|
void |
afterPropertiesSet() |
protected java.lang.String |
getBeanName() |
int |
getMessageCountForAllMessageGroups() |
MessageGroup |
getMessageGroup(java.lang.Object groupId)
Return all Messages currently in the MessageStore that were stored using
BasicMessageGroupStore.addMessageToGroup(Object, Message) with this group id. |
int |
getMessageGroupCount() |
protected MessageGroupFactory |
getMessageGroupFactory() |
protected org.springframework.data.redis.core.RedisTemplate<java.lang.Object,org.springframework.messaging.Message<?>> |
getRedisTemplate() |
int |
messageGroupSize(java.lang.Object groupId)
Returns the size of this MessageGroup.
|
org.springframework.messaging.Message<?> |
pollMessageFromGroup(java.lang.Object groupId)
Polls Message from this
MessageGroup (in FIFO style if supported by the implementation)
while also removing the polled Message |
void |
removeMessageGroup(java.lang.Object groupId)
Remove the message group with this id.
|
void |
setBeanName(java.lang.String name) |
void |
setMessageGroupFactory(MessageGroupFactory messageGroupFactory)
Specify the
MessageGroupFactory to create MessageGroup object where
it is necessary. |
void |
setValueSerializer(org.springframework.data.redis.serializer.RedisSerializer<?> valueSerializer)
Use a different serializer (default
JdkSerializationRedisSerializer for
the Message . |
public RedisChannelMessageStore(org.springframework.data.redis.connection.RedisConnectionFactory connectionFactory)
connectionFactory
- The redis connection factory.public void setValueSerializer(org.springframework.data.redis.serializer.RedisSerializer<?> valueSerializer)
JdkSerializationRedisSerializer
for
the Message
.valueSerializer
- The value serializer.public void setMessageGroupFactory(MessageGroupFactory messageGroupFactory)
MessageGroupFactory
to create MessageGroup
object where
it is necessary.
Defaults to SimpleMessageGroupFactory
.messageGroupFactory
- the MessageGroupFactory
to use.protected MessageGroupFactory getMessageGroupFactory()
public void setBeanName(java.lang.String name)
setBeanName
in interface org.springframework.beans.factory.BeanNameAware
protected java.lang.String getBeanName()
protected org.springframework.data.redis.core.RedisTemplate<java.lang.Object,org.springframework.messaging.Message<?>> getRedisTemplate()
public void afterPropertiesSet() throws java.lang.Exception
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
java.lang.Exception
@ManagedAttribute public int messageGroupSize(java.lang.Object groupId)
BasicMessageGroupStore
messageGroupSize
in interface BasicMessageGroupStore
groupId
- The group identifier.public MessageGroup getMessageGroup(java.lang.Object groupId)
BasicMessageGroupStore
BasicMessageGroupStore.addMessageToGroup(Object, Message)
with this group id.getMessageGroup
in interface BasicMessageGroupStore
groupId
- The group identifier.public MessageGroup addMessageToGroup(java.lang.Object groupId, org.springframework.messaging.Message<?> message)
BasicMessageGroupStore
addMessageToGroup
in interface BasicMessageGroupStore
groupId
- The group id to store the message under.message
- A message.public void removeMessageGroup(java.lang.Object groupId)
BasicMessageGroupStore
removeMessageGroup
in interface BasicMessageGroupStore
groupId
- The id of the group to remove.public org.springframework.messaging.Message<?> pollMessageFromGroup(java.lang.Object groupId)
BasicMessageGroupStore
MessageGroup
(in FIFO style if supported by the implementation)
while also removing the polled Message
pollMessageFromGroup
in interface BasicMessageGroupStore
groupId
- The group identifier.@ManagedAttribute public int getMessageCountForAllMessageGroups()
@ManagedAttribute public int getMessageGroupCount()