public class ClusterMessageServiceImpl extends Object implements ClusterMessageService, ClusterMessageManager, com.atlassian.scheduler.JobRunner
Constructor and Description |
---|
ClusterMessageServiceImpl(com.atlassian.scheduler.SchedulerService schedulerService,
ClusterMessageDao dao,
ClusterService clusterService,
com.atlassian.event.api.EventPublisher eventPublisher,
Supplier<Long> timestampSupplier) |
Modifier and Type | Method and Description |
---|---|
void |
deleteMessagesOlderThan(Instant instant)
Removes all stored messages older than the specified instant
|
void |
deleteOldMessages()
Delete messages with timestamp older than an implementation-defined threshold.
|
List<InternalClusterMessage> |
getAllMessages() |
void |
onApplicationStarted(com.atlassian.config.lifecycle.events.ApplicationStartedEvent e) |
void |
onXMLRestore(XMLRestoreFinishedEvent restoreFinishedEvent) |
void |
publish(String channel,
String message)
Send a message to other nodes (excluding the sender), notifying all listeners on a specific channel.
|
void |
registerListener(ClusterMessageListener listener,
String channel)
Register a listener on a channel.
|
void |
registerSelf() |
com.atlassian.scheduler.JobRunnerResponse |
runJob(com.atlassian.scheduler.JobRunnerRequest request) |
void |
start()
Start polling for new messages.
|
void |
stop()
Stop polling for new messages and ignore any late messages on start().
|
void |
unregisterListener(ClusterMessageListener listener)
Unregister a listener from all channels.
|
void |
unregisterListener(ClusterMessageListener listener,
String channel)
Unregister a listener from a specific channel.
|
void |
unregisterSelf() |
public ClusterMessageServiceImpl(com.atlassian.scheduler.SchedulerService schedulerService, ClusterMessageDao dao, ClusterService clusterService, com.atlassian.event.api.EventPublisher eventPublisher, Supplier<Long> timestampSupplier)
@PostConstruct public void registerSelf()
@PreDestroy public void unregisterSelf()
@EventListener public void onApplicationStarted(com.atlassian.config.lifecycle.events.ApplicationStartedEvent e)
@EventListener public void onXMLRestore(XMLRestoreFinishedEvent restoreFinishedEvent)
public void start()
ClusterMessageManager
start
in interface ClusterMessageManager
public void stop()
ClusterMessageManager
stop
in interface ClusterMessageManager
public void deleteOldMessages()
ClusterMessageManager
deleteOldMessages
in interface ClusterMessageManager
public void deleteMessagesOlderThan(Instant instant)
ClusterMessageManager
deleteMessagesOlderThan
in interface ClusterMessageManager
public void registerListener(ClusterMessageListener listener, String channel)
ClusterMessageService
registerListener
in interface ClusterMessageService
public void unregisterListener(ClusterMessageListener listener, String channel)
ClusterMessageService
unregisterListener
in interface ClusterMessageService
public void unregisterListener(ClusterMessageListener listener)
ClusterMessageService
unregisterListener
in interface ClusterMessageService
public void publish(String channel, String message)
ClusterMessageService
publish
in interface ClusterMessageService
channel
- channel name, max. 64 characters.message
- message content, max. 1024 characters.@Nullable public com.atlassian.scheduler.JobRunnerResponse runJob(com.atlassian.scheduler.JobRunnerRequest request)
runJob
in interface com.atlassian.scheduler.JobRunner
public List<InternalClusterMessage> getAllMessages()
getAllMessages
in interface ClusterMessageManager
Copyright © 2021 Atlassian. All rights reserved.