public class SyncQueueFacade extends Object implements com.hazelcast.core.EntryListener<String,String>
Modifier and Type | Field and Description |
---|---|
protected Deque<String> |
nodeIdRoundRobin |
protected String |
synchronizationObjectQueue |
Constructor and Description |
---|
SyncQueueFacade()
A convenience constructor that implements HazelcastClient
|
SyncQueueFacade(DistributedDataClient client) |
Modifier and Type | Method and Description |
---|---|
void |
add(org.dataone.cn.synchronization.types.SyncObject syncObject)
Adds a task to the appropriate queue, creating the queue if one doesn't exist
|
void |
addWithPriority(org.dataone.cn.synchronization.types.SyncObject syncObject)
Adds a task to the appropriate priority queue, creating the queue if one doesn't exist.
|
void |
entryAdded(com.hazelcast.core.EntryEvent<String,String> event)
listens to map entries so that the round robin can be expanded
to include the new node entry.
|
void |
entryEvicted(com.hazelcast.core.EntryEvent<String,String> event) |
void |
entryRemoved(com.hazelcast.core.EntryEvent<String,String> event) |
void |
entryUpdated(com.hazelcast.core.EntryEvent<String,String> event) |
BlockingQueue<Object> |
getLegacyQueue()
A special accessor for the legacy queue to support synchronization
metrics collection.
|
protected String |
getNextNodeId()
implements the Round Robin approach to reading from multiple queues
It reads the first item of the queue, then cycles it to the end of the queue
and returns that value.
|
TreeSet<String> |
getQueueNames()
builds a sorted set from the keys of the two queue maps
|
org.dataone.cn.synchronization.types.SyncObject |
poll(long timeout,
TimeUnit unit)
Returns the next SyncObject from one of the syncQueues, or null if none
exist in any of the SyncQueues.
|
int |
size()
Returns the total number of items in the sync queues
|
int |
size(String nodeId) |
protected String synchronizationObjectQueue
public SyncQueueFacade()
public SyncQueueFacade(DistributedDataClient client)
public void add(org.dataone.cn.synchronization.types.SyncObject syncObject)
syncObject
- public void addWithPriority(org.dataone.cn.synchronization.types.SyncObject syncObject)
syncObject
- public org.dataone.cn.synchronization.types.SyncObject poll(long timeout, TimeUnit unit) throws InterruptedException
timeout
- unit
- InterruptedException
protected String getNextNodeId()
public int size()
public int size(String nodeId)
public BlockingQueue<Object> getLegacyQueue()
public TreeSet<String> getQueueNames()
public void entryAdded(com.hazelcast.core.EntryEvent<String,String> event)
Copyright © 2018. All rights reserved.