public class SubscribableRedisChannel extends AbstractMessageChannel implements BroadcastCapableChannel, ManageableSmartLifecycle
AbstractMessageChannel
implementation with BroadcastCapableChannel
aspect to provide a pub-sub semantics to consume messages fgrom Redis topic.AbstractMessageChannel.ChannelInterceptorList
IntegrationManagement.ManagementOverrides
interceptors, meters
EXPRESSION_PARSER, logger
INDEFINITE_TIMEOUT
DEFAULT_PHASE
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
Constructor and Description |
---|
SubscribableRedisChannel(RedisConnectionFactory connectionFactory,
String topicName) |
Modifier and Type | Method and Description |
---|---|
void |
destroy() |
protected boolean |
doSend(Message<?> message,
long arg1)
Subclasses must implement this method.
|
int |
getPhase() |
boolean |
isAutoStartup() |
boolean |
isRunning() |
void |
onInit()
Subclasses may implement this for initialization logic.
|
void |
setMaxSubscribers(int maxSubscribers)
Specify the maximum number of subscribers supported by the
channel's dispatcher.
|
void |
setMessageConverter(MessageConverter messageConverter)
Specify the
MessageConverter to use when trying to convert to
one of this channel's supported datatypes (in order) for a Message whose payload
does not already match. |
void |
setSerializer(RedisSerializer<?> serializer) |
void |
setTaskExecutor(Executor taskExecutor) |
void |
start() |
void |
stop() |
void |
stop(Runnable callback) |
boolean |
subscribe(MessageHandler handler) |
boolean |
unsubscribe(MessageHandler handler) |
addInterceptor, addInterceptor, getComponentType, getFullChannelName, getIChannelInterceptorList, getIntegrationPatternType, getInterceptors, getMetricsCaptor, getOverrides, isLoggingEnabled, registerMetricsCaptor, removeInterceptor, removeInterceptor, send, send, setDatatypes, setInterceptors, setLoggingEnabled, setShouldTrack
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
isBroadcast
send, send
getManagedName, getManagedType, getThisAs, setManagedName, setManagedType
getBeanName, getComponentName
public SubscribableRedisChannel(RedisConnectionFactory connectionFactory, String topicName)
public void setTaskExecutor(Executor taskExecutor)
public void setMessageConverter(MessageConverter messageConverter)
AbstractMessageChannel
MessageConverter
to use when trying to convert to
one of this channel's supported datatypes (in order) for a Message whose payload
does not already match.
Note: only the MessageConverter.fromMessage(Message, Class)
method is used. If the returned object is not a Message
, the inbound
headers will be copied; if the returned object is a Message
, it is
expected that the converter will have fully populated the headers; no
further action is performed by the channel. If null
is returned,
conversion to the next datatype (if any) will be attempted.
Defaults to a
DefaultDatatypeChannelMessageConverter
.
setMessageConverter
in class AbstractMessageChannel
messageConverter
- The message converter.public void setSerializer(RedisSerializer<?> serializer)
public void setMaxSubscribers(int maxSubscribers)
maxSubscribers
- The maximum number of subscribers allowed.public boolean subscribe(MessageHandler handler)
subscribe
in interface SubscribableChannel
public boolean unsubscribe(MessageHandler handler)
unsubscribe
in interface SubscribableChannel
protected boolean doSend(Message<?> message, long arg1)
AbstractMessageChannel
doSend
in class AbstractMessageChannel
message
- The message.arg1
- The timeout.public void onInit()
IntegrationObjectSupport
onInit
in class AbstractMessageChannel
public boolean isAutoStartup()
isAutoStartup
in interface SmartLifecycle
public int getPhase()
getPhase
in interface Phased
getPhase
in interface SmartLifecycle
public boolean isRunning()
isRunning
in interface Lifecycle
isRunning
in interface ManageableLifecycle
public void start()
start
in interface Lifecycle
start
in interface ManageableLifecycle
public void stop()
stop
in interface Lifecycle
stop
in interface ManageableLifecycle
public void stop(Runnable callback)
stop
in interface SmartLifecycle
public void destroy()
destroy
in interface DisposableBean
destroy
in interface IntegrationManagement
destroy
in class AbstractMessageChannel