Package com.github.ddth.queue.impl
Class RocksDbQueueFactory<T extends RocksDbQueue<ID,DATA>,ID,DATA>
- java.lang.Object
-
- com.github.ddth.queue.impl.AbstractQueueFactory<T,ID,DATA>
-
- com.github.ddth.queue.impl.RocksDbQueueFactory<T,ID,DATA>
-
- All Implemented Interfaces:
IQueueFactory<ID,DATA>
,AutoCloseable
- Direct Known Subclasses:
UniversalRocksDbQueueFactory
,UniversalRocksDbQueueFactory
public abstract class RocksDbQueueFactory<T extends RocksDbQueue<ID,DATA>,ID,DATA> extends AbstractQueueFactory<T,ID,DATA>
Factory to createRocksDbQueue
instances.- Since:
- 0.4.1
- Author:
- Thanh Ba Nguyen
-
-
Field Summary
Fields Modifier and Type Field Description static String
SPEC_FIELD_CF_EPHEMERAL
static String
SPEC_FIELD_CF_METADATA
static String
SPEC_FIELD_CF_QUEUE
static String
SPEC_FIELD_STORAGE_DIR
-
Constructor Summary
Constructors Constructor Description RocksDbQueueFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getDefaultCfNameEphemeral()
Default name of the column-family to store ephemeral messages, passed to all queues created by this factory.String
getDefaultCfNameMetaData()
Default name of the column-family to store metadata, passed to all queues created by this factory.String
getDefaultCfNameQueue()
Default name of the column-family to store queue messages, passed to all queues created by this factory.String
getRootStorageDir()
Root directory to store RocksDB's data.protected void
initQueue(T queue, QueueSpec spec)
Initialize a newly created queue instance.RocksDbQueueFactory<T,ID,DATA>
setDefaultCfNameEphemeral(String defaultCfNameEphemeral)
Default name of the column-family to store ephemeral messages, passed to all queues created by this factory.RocksDbQueueFactory<T,ID,DATA>
setDefaultCfNameMetaData(String defaultCfNameMetaData)
Default name of the column-family to store metadata, passed to all queues created by this factory.RocksDbQueueFactory<T,ID,DATA>
setDefaultCfNameQueue(String defaultCfNameQueue)
Default name of the column-family to store queue messages, passed to all queues created by this factory.RocksDbQueueFactory<T,ID,DATA>
setRootStorageDir(String rootStorageDir)
Root directory to store RocksDB's data.-
Methods inherited from class com.github.ddth.queue.impl.AbstractQueueFactory
close, createAndInitQueue, createQueueInstance, destroy, getDefaultEphemeralDisabled, getDefaultEphemeralMaxSize, getDefaultMaxSize, getQueue, init, isDefaultEphemeralDisabled, setDefaultEphemeralDisabled, setDefaultEphemeralMaxSize, setDefaultMaxSize
-
-
-
-
Field Detail
-
SPEC_FIELD_STORAGE_DIR
public static final String SPEC_FIELD_STORAGE_DIR
- See Also:
- Constant Field Values
-
SPEC_FIELD_CF_EPHEMERAL
public static final String SPEC_FIELD_CF_EPHEMERAL
- See Also:
- Constant Field Values
-
SPEC_FIELD_CF_QUEUE
public static final String SPEC_FIELD_CF_QUEUE
- See Also:
- Constant Field Values
-
SPEC_FIELD_CF_METADATA
public static final String SPEC_FIELD_CF_METADATA
- See Also:
- Constant Field Values
-
-
Method Detail
-
getRootStorageDir
public String getRootStorageDir()
Root directory to store RocksDB's data. Each queue created by this factory stores its own data in a sub-directory.- Returns:
-
setRootStorageDir
public RocksDbQueueFactory<T,ID,DATA> setRootStorageDir(String rootStorageDir)
Root directory to store RocksDB's data. Each queue created by this factory stores its own data in a sub-directory.- Parameters:
rootStorageDir
-- Returns:
-
getDefaultCfNameQueue
public String getDefaultCfNameQueue()
Default name of the column-family to store queue messages, passed to all queues created by this factory.- Returns:
-
setDefaultCfNameQueue
public RocksDbQueueFactory<T,ID,DATA> setDefaultCfNameQueue(String defaultCfNameQueue)
Default name of the column-family to store queue messages, passed to all queues created by this factory.- Parameters:
defaultCfNameQueue
-- Returns:
-
getDefaultCfNameMetaData
public String getDefaultCfNameMetaData()
Default name of the column-family to store metadata, passed to all queues created by this factory.- Returns:
-
setDefaultCfNameMetaData
public RocksDbQueueFactory<T,ID,DATA> setDefaultCfNameMetaData(String defaultCfNameMetaData)
Default name of the column-family to store metadata, passed to all queues created by this factory.- Parameters:
defaultCfNameMetaData
-- Returns:
-
getDefaultCfNameEphemeral
public String getDefaultCfNameEphemeral()
Default name of the column-family to store ephemeral messages, passed to all queues created by this factory.- Returns:
-
setDefaultCfNameEphemeral
public RocksDbQueueFactory<T,ID,DATA> setDefaultCfNameEphemeral(String defaultCfNameEphemeral)
Default name of the column-family to store ephemeral messages, passed to all queues created by this factory.- Parameters:
defaultCfNameEphemeral
-- Returns:
-
initQueue
protected void initQueue(T queue, QueueSpec spec) throws Exception
Initialize a newly created queue instance.Called by
AbstractQueueFactory.createAndInitQueue(QueueSpec)
. Sub-class may override this method to implement its own business logic.- Overrides:
initQueue
in classAbstractQueueFactory<T extends RocksDbQueue<ID,DATA>,ID,DATA>
- Throws:
Exception
-
-