Package com.github.ddth.queue.impl
Class JdbcQueueFactory<T extends JdbcQueue<ID,DATA>,ID,DATA>
- java.lang.Object
-
- com.github.ddth.queue.impl.AbstractQueueFactory<T,ID,DATA>
-
- com.github.ddth.queue.impl.JdbcQueueFactory<T,ID,DATA>
-
- All Implemented Interfaces:
IQueueFactory<ID,DATA>,AutoCloseable
- Direct Known Subclasses:
LessLockingUniversalMySQLQueueFactory,LessLockingUniversalMySQLQueueFactory,LessLockingUniversalPgSQLQueueFactory,LessLockingUniversalPgSQLQueueFactory,LessLockingUniversalSingleStorageMySQLQueueFactory,LessLockingUniversalSingleStorageMySQLQueueFactory,LessLockingUniversalSingleStoragePgSQLQueueFactory,LessLockingUniversalSingleStoragePgSQLQueueFactory,UniversalJdbcQueueFactory,UniversalJdbcQueueFactory,UniversalSingleStorageJdbcQueueFactory,UniversalSingleStorageJdbcQueueFactory
public abstract class JdbcQueueFactory<T extends JdbcQueue<ID,DATA>,ID,DATA> extends AbstractQueueFactory<T,ID,DATA>
Factory to createJdbcQueueinstances.- Since:
- 0.4.1
- Author:
- Thanh Ba Nguyen
-
-
Field Summary
Fields Modifier and Type Field Description static StringSPEC_FIELD_MAX_RETRIESstatic StringSPEC_FIELD_TABLE_NAMEstatic StringSPEC_FIELD_TABLE_NAME_EPHEMERALstatic StringSPEC_FIELD_TRANSACTION_ISOLATION_LEVEL
-
Constructor Summary
Constructors Constructor Description JdbcQueueFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddestroy()DataSourcegetDefaultDataSource()If allJdbcQueueinstances are connecting to one database, it's a good idea to pre-create aDataSourceinstance and share it amongstJdbcQueueinstances created from this factory by assigning it todefaultDataSource(seesetDefaultDataSource(DataSource)).protected com.github.ddth.dao.jdbc.IJdbcHelpergetDefaultJdbcHelper()If allJdbcQueueinstances are connecting to oneDataSource, it's a good idea to pre-create aIJdbcHelperinstance and share it amongstJdbcQueueinstances created from this factory by assigning it todefaultJdbcHelper(seesetDefaultJdbcHelper(IJdbcHelper)).intgetDefaultMaxRetries()Default max number of retires for DB-operations, passed to all queues created by this factory.StringgetDefaultTableName()Default name of database table to store queue messages, passed to all queues created by this factory.StringgetDefaultTableNameEphemeral()Default name of database table to store ephemeral messages, passed to all queues created by this factory.intgetDefaultTransactionIsolationLevel()Default transaction isolation level used in DB-operations, passed to all queues created by this factory.protected voidinitQueue(T queue, QueueSpec spec)Initialize a newly created queue instance.JdbcQueueFactory<T,ID,DATA>setDefaultDataSource(DataSource dataSource)If allJdbcQueueinstances are connecting to one database, it's a good idea to pre-create aDataSourceinstance and share it amongstJdbcQueueinstances created from this factory by assigning it todefaultDataSource(seesetDefaultDataSource(DataSource)).JdbcQueueFactory<T,ID,DATA>setDefaultJdbcHelper(com.github.ddth.dao.jdbc.IJdbcHelper jdbcHelper)If allJdbcQueueinstances are connecting to oneDataSource, it's a good idea to pre-create aIJdbcHelperinstance and share it amongstJdbcQueueinstances created from this factory by assigning it todefaultJdbcHelper(seesetDefaultJdbcHelper(IJdbcHelper)).protected JdbcQueueFactory<T,ID,DATA>setDefaultJdbcHelper(com.github.ddth.dao.jdbc.IJdbcHelper jdbcHelper, boolean setMyOwnJdbcHelper)If allJdbcQueueinstances are connecting to oneDataSource, it's a good idea to pre-create aIJdbcHelperinstance and share it amongstJdbcQueueinstances created from this factory by assigning it todefaultJdbcHelper(seesetDefaultJdbcHelper(IJdbcHelper)).JdbcQueueFactory<T,ID,DATA>setDefaultMaxRetries(int defaultMaxRetries)Default max number of retires for DB-operations, passed to all queues created by this factory.JdbcQueueFactory<T,ID,DATA>setDefaultTableName(String defaultTableName)Default name of database table to store queue messages, passed to all queues created by this factory.JdbcQueueFactory<T,ID,DATA>setDefaultTableNameEphemeral(String defaultTableNameEphemeral)Default name of database table to store ephemeral messages, passed to all queues created by this factory.JdbcQueueFactory<T,ID,DATA>setDefaultTransactionIsolationLevel(int defaultTransactionIsolationLevel)Default transaction isolation level used in DB-operations, passed to all queues created by this factory.-
Methods inherited from class com.github.ddth.queue.impl.AbstractQueueFactory
close, createAndInitQueue, createQueueInstance, getDefaultEphemeralDisabled, getDefaultEphemeralMaxSize, getDefaultMaxSize, getQueue, init, isDefaultEphemeralDisabled, setDefaultEphemeralDisabled, setDefaultEphemeralMaxSize, setDefaultMaxSize
-
-
-
-
Field Detail
-
SPEC_FIELD_TABLE_NAME
public static final String SPEC_FIELD_TABLE_NAME
- See Also:
- Constant Field Values
-
SPEC_FIELD_TABLE_NAME_EPHEMERAL
public static final String SPEC_FIELD_TABLE_NAME_EPHEMERAL
- See Also:
- Constant Field Values
-
SPEC_FIELD_MAX_RETRIES
public static final String SPEC_FIELD_MAX_RETRIES
- See Also:
- Constant Field Values
-
SPEC_FIELD_TRANSACTION_ISOLATION_LEVEL
public static final String SPEC_FIELD_TRANSACTION_ISOLATION_LEVEL
- See Also:
- Constant Field Values
-
-
Method Detail
-
getDefaultTableName
public String getDefaultTableName()
Default name of database table to store queue messages, passed to all queues created by this factory.- Returns:
- Since:
- 0.6.2
-
setDefaultTableName
public JdbcQueueFactory<T,ID,DATA> setDefaultTableName(String defaultTableName)
Default name of database table to store queue messages, passed to all queues created by this factory.- Parameters:
defaultTableName-- Since:
- 0.6.2
-
getDefaultTableNameEphemeral
public String getDefaultTableNameEphemeral()
Default name of database table to store ephemeral messages, passed to all queues created by this factory.- Returns:
- Since:
- 0.6.2
-
setDefaultTableNameEphemeral
public JdbcQueueFactory<T,ID,DATA> setDefaultTableNameEphemeral(String defaultTableNameEphemeral)
Default name of database table to store ephemeral messages, passed to all queues created by this factory.- Parameters:
defaultTableNameEphemeral-- Since:
- 0.6.2
-
getDefaultMaxRetries
public int getDefaultMaxRetries()
Default max number of retires for DB-operations, passed to all queues created by this factory.- Returns:
- Since:
- 0.6.2
-
setDefaultMaxRetries
public JdbcQueueFactory<T,ID,DATA> setDefaultMaxRetries(int defaultMaxRetries)
Default max number of retires for DB-operations, passed to all queues created by this factory.- Parameters:
defaultMaxRetries-- Since:
- 0.6.2
-
getDefaultTransactionIsolationLevel
public int getDefaultTransactionIsolationLevel()
Default transaction isolation level used in DB-operations, passed to all queues created by this factory.- Returns:
- Since:
- 0.6.2
-
setDefaultTransactionIsolationLevel
public JdbcQueueFactory<T,ID,DATA> setDefaultTransactionIsolationLevel(int defaultTransactionIsolationLevel)
Default transaction isolation level used in DB-operations, passed to all queues created by this factory.- Parameters:
defaultTransactionIsolationLevel-- Returns:
- Since:
- 0.6.2
-
getDefaultJdbcHelper
protected com.github.ddth.dao.jdbc.IJdbcHelper getDefaultJdbcHelper()
If allJdbcQueueinstances are connecting to oneDataSource, it's a good idea to pre-create aIJdbcHelperinstance and share it amongstJdbcQueueinstances created from this factory by assigning it todefaultJdbcHelper(seesetDefaultJdbcHelper(IJdbcHelper)).- Returns:
- Since:
- 0.5.1.1
-
setDefaultJdbcHelper
protected JdbcQueueFactory<T,ID,DATA> setDefaultJdbcHelper(com.github.ddth.dao.jdbc.IJdbcHelper jdbcHelper, boolean setMyOwnJdbcHelper)
If allJdbcQueueinstances are connecting to oneDataSource, it's a good idea to pre-create aIJdbcHelperinstance and share it amongstJdbcQueueinstances created from this factory by assigning it todefaultJdbcHelper(seesetDefaultJdbcHelper(IJdbcHelper)).- Parameters:
jdbcHelper-setMyOwnJdbcHelper-- Returns:
- Since:
- 0.7.1
-
setDefaultJdbcHelper
public JdbcQueueFactory<T,ID,DATA> setDefaultJdbcHelper(com.github.ddth.dao.jdbc.IJdbcHelper jdbcHelper)
If allJdbcQueueinstances are connecting to oneDataSource, it's a good idea to pre-create aIJdbcHelperinstance and share it amongstJdbcQueueinstances created from this factory by assigning it todefaultJdbcHelper(seesetDefaultJdbcHelper(IJdbcHelper)).- Parameters:
jdbcHelper-- Returns:
- Since:
- 0.5.1.1
-
getDefaultDataSource
public DataSource getDefaultDataSource()
If allJdbcQueueinstances are connecting to one database, it's a good idea to pre-create aDataSourceinstance and share it amongstJdbcQueueinstances created from this factory by assigning it todefaultDataSource(seesetDefaultDataSource(DataSource)).- Returns:
- Since:
- 0.6.2.6
-
setDefaultDataSource
public JdbcQueueFactory<T,ID,DATA> setDefaultDataSource(DataSource dataSource)
If allJdbcQueueinstances are connecting to one database, it's a good idea to pre-create aDataSourceinstance and share it amongstJdbcQueueinstances created from this factory by assigning it todefaultDataSource(seesetDefaultDataSource(DataSource)).- Parameters:
dataSource-- Returns:
- Since:
- 0.6.2.6
-
destroy
public void destroy()
-
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.
-
-