public class UniversalJdbcQueue extends JdbcQueue
IQueue.
Queue and Take UniversalQueueMessages.
ephemeralDisabled: when set to true, ephemeral storage is
disabled. Default value is false
fifo: when set to true (which is default) messages are taken
in FIFO manner.
Queue db table schema:
queue_id: bigint, auto increment, see
IQueueMessage.qId()msg_org_timestamp: datetime, see
IQueueMessage.qOriginalTimestamp()msg_timestamp: datetime, see
IQueueMessage.qTimestamp()msg_num_requeues: int, see
IQueueMessage.qNumRequeues()msg_content: blob, message's contentEphemeral db table schema:
queue_id: bigint, see IQueueMessage.qId()msg_org_timestamp: datetime, see
IQueueMessage.qOriginalTimestamp()msg_timestamp: datetime, see
IQueueMessage.qTimestamp()msg_num_requeues: int, see
IQueueMessage.qNumRequeues()msg_content: blob, message's content| Modifier and Type | Field and Description |
|---|---|
static String |
COL_CONTENT |
static String |
COL_NUM_REQUEUES |
static String |
COL_ORG_TIMESTAMP |
static String |
COL_QUEUE_ID |
static String |
COL_TIMESTAMP |
DEFAULT_MAX_RETRIES| Constructor and Description |
|---|
UniversalJdbcQueue() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
getEphemeralDisabled() |
boolean |
getFifo() |
protected Collection<IQueueMessage> |
getOrphanFromEphemeralStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
long thresholdTimestampMs)
Gets all orphan messages (messages that were left in ephemeral storage
for a long time).
|
UniversalJdbcQueue |
init() |
boolean |
isEphemeralDisabled() |
boolean |
isFifo() |
UniversalJdbcQueue |
markEphemeralDisabled(boolean setEphemeralDisabled) |
UniversalJdbcQueue |
markFifo(boolean fifo) |
protected boolean |
putToEphemeralStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
IQueueMessage _msg)
Puts a message to the ephemeral storage.
|
protected boolean |
putToQueueStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
IQueueMessage _msg)
Puts a message to tail of the queue storage.
|
protected UniversalQueueMessage |
readFromEphemeralStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
IQueueMessage msg)
Reads a message from the ephemeral storage.
|
protected UniversalQueueMessage |
readFromQueueStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate)
Reads a message from head of queue storage.
|
protected boolean |
removeFromEphemeralStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
IQueueMessage _msg)
Removes a message from the ephemeral storage.
|
protected boolean |
removeFromQueueStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
IQueueMessage _msg)
Removes a message from the queue storage.
|
UniversalJdbcQueue |
setEphemeralDisabled(boolean ephemeralDisabled) |
UniversalJdbcQueue |
setFifo(boolean fifo) |
UniversalQueueMessage |
take()
Takes a message out of queue.
|
_finishWithRetries, _getOrphanMessagesWithRetries, _moveFromEphemeralToQueueStorageWithRetries, _queueWithRetries, _requeueSilentWithRetries, _requeueWithRetries, _takeWithRetries, destroy, ephemeralSize, finish, getMaxRetries, getOrphanMessages, getTableName, getTableNameEphemeral, getTransactionIsolationLevel, moveFromEphemeralToQueueStorage, queue, queueSize, requeue, requeueSilent, setMaxRetries, setTableName, setTableNameEphemeral, setTransactionIsolationLevelcommitTransaction, connection, connection, execute, execute, execute, executeSelect, executeSelect, executeSelect, executeSelect, executeSelect, executeSelect, getDataSource, jdbcTemplate, jdbcTemplate, returnConnection, rollbackTransaction, setDataSource, startTransactionaddProfiling, clearProfiling, getCache, getCacheFactory, getFromCache, getFromCache, getProfiling, isCacheEnabled, isCacheItemsExpireAfterWrite, putToCache, putToCache, putToCache, removeFromCache, setCacheFactory, setCacheItemsExpireAfterWrite, startProfilingpublic static final String COL_QUEUE_ID
public static final String COL_ORG_TIMESTAMP
public static final String COL_TIMESTAMP
public static final String COL_NUM_REQUEUES
public static final String COL_CONTENT
public UniversalJdbcQueue setFifo(boolean fifo)
public UniversalJdbcQueue markFifo(boolean fifo)
public boolean isFifo()
public boolean getFifo()
public UniversalJdbcQueue setEphemeralDisabled(boolean ephemeralDisabled)
public UniversalJdbcQueue markEphemeralDisabled(boolean setEphemeralDisabled)
public boolean isEphemeralDisabled()
public boolean getEphemeralDisabled()
public UniversalJdbcQueue init()
JdbcQueueprotected UniversalQueueMessage readFromQueueStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate)
readFromQueueStorage in class JdbcQueueprotected UniversalQueueMessage readFromEphemeralStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, IQueueMessage msg)
readFromEphemeralStorage in class JdbcQueueprotected Collection<IQueueMessage> getOrphanFromEphemeralStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, long thresholdTimestampMs)
getOrphanFromEphemeralStorage in class JdbcQueuethresholdTimestampMs - get all orphan messages that were queued
before this timestampprotected boolean putToQueueStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
IQueueMessage _msg)
putToQueueStorage in class JdbcQueueprotected boolean putToEphemeralStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
IQueueMessage _msg)
putToEphemeralStorage in class JdbcQueueprotected boolean removeFromQueueStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
IQueueMessage _msg)
removeFromQueueStorage in class JdbcQueueprotected boolean removeFromEphemeralStorage(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
IQueueMessage _msg)
removeFromEphemeralStorage in class JdbcQueuepublic UniversalQueueMessage take()
Implementation flow:
Note: ephemeral storage implementation is optional, depends on implementation.
Copyright © 2015 DDTH. All Rights Reserved.