public abstract class AbstractMQManager<M extends Externalizable> extends Object implements MQManager<M>
Constructor and Description |
---|
AbstractMQManager() |
Modifier and Type | Method and Description |
---|---|
protected abstract MQTailer<M> |
acquireTailer(Collection<MQPartition> partitions,
String group) |
void |
close() |
protected abstract void |
create(String name,
int size) |
protected abstract MQAppender<M> |
createAppender(String name) |
boolean |
createIfNotExists(String name,
int size)
Creates a new MQueue with
size partitions if the MQueue does not exists. |
MQTailer<M> |
createTailer(String group,
Collection<MQPartition> partitions)
Create a tailer for a consumer
group and assign multiple partitions . |
MQTailer<M> |
createTailer(String group,
MQPartition partition)
Create a tailer for a consumer
group and assign a single partition . |
boolean |
delete(String name)
Try to delete a MQueue.
|
protected abstract MQTailer<M> |
doSubscribe(String group,
Collection<String> names,
MQRebalanceListener listener) |
MQAppender<M> |
getAppender(String name)
Get an appender for the MQueue named
name . |
MQTailer<M> |
subscribe(String group,
Collection<String> names,
MQRebalanceListener listener)
Create a tailer for a consumer
group and subscribe to multiple MQueues. |
boolean |
supportSubscribe()
Returns
true if the MQueue MQManager.subscribe(java.lang.String, java.util.Collection<java.lang.String>, org.nuxeo.ecm.platform.importer.mqueues.mqueues.MQRebalanceListener) method is supported. |
public AbstractMQManager()
protected abstract MQAppender<M> createAppender(String name)
protected abstract MQTailer<M> acquireTailer(Collection<MQPartition> partitions, String group)
protected abstract MQTailer<M> doSubscribe(String group, Collection<String> names, MQRebalanceListener listener)
public boolean createIfNotExists(String name, int size)
MQManager
size
partitions if the MQueue does not exists.
Returns true it the MQueue has been created.createIfNotExists
in interface MQManager<M extends Externalizable>
public boolean delete(String name)
MQManager
delete
in interface MQManager<M extends Externalizable>
public MQTailer<M> createTailer(String group, Collection<MQPartition> partitions)
MQManager
group
and assign multiple partitions
.
A tailer is NOT thread safe.createTailer
in interface MQManager<M extends Externalizable>
public boolean supportSubscribe()
MQManager
true
if the MQueue MQManager.subscribe(java.lang.String, java.util.Collection<java.lang.String>, org.nuxeo.ecm.platform.importer.mqueues.mqueues.MQRebalanceListener)
method is supported.supportSubscribe
in interface MQManager<M extends Externalizable>
public MQTailer<M> subscribe(String group, Collection<String> names, MQRebalanceListener listener)
MQManager
group
and subscribe to multiple MQueues.
The partitions assignment is done dynamically depending on the number of subscribers.
The partitions can change during tailers life, this is called a rebalancing.
A listener can be used to be notified on assignment changes.
A tailer is NOT thread safe.
You should not mix MQManager.createTailer(java.lang.String, org.nuxeo.ecm.platform.importer.mqueues.mqueues.MQPartition)
and subscribe
usage using the same group
.subscribe
in interface MQManager<M extends Externalizable>
public MQTailer<M> createTailer(String group, MQPartition partition)
MQManager
group
and assign a single partition
.
A tailer is NOT thread safe.createTailer
in interface MQManager<M extends Externalizable>
public MQAppender<M> getAppender(String name)
MQManager
name
.
An appender is thread safe.getAppender
in interface MQManager<M extends Externalizable>
public void close() throws Exception
close
in interface AutoCloseable
Exception
Copyright © 2017 Nuxeo. All rights reserved.