Klasse SingleCollectionMessaging
java.lang.Object
java.lang.Thread
de.caluga.morphium.messaging.SingleCollectionMessaging
- Alle implementierten Schnittstellen:
MorphiumMessaging, ShutdownListener, Closeable, AutoCloseable, Runnable
public class SingleCollectionMessaging
extends Thread
implements ShutdownListener, MorphiumMessaging
User: Stephan Bösebeck
Date: 26.05.12
Time: 15:48
Messaging implements a simple, threadsafe and messaging api. Used for cache
synchronization.
Msg can have several modes:
- LockedBy set to ALL (Exclusive Messages): every listener may process it (in
parallel), means 1->n. e.g. Cache sync
- LockedBy null (non exclusive messages): only one listener at a time
- Message listeners may return a Message as answer. Or throw a
MessageRejectedException.c
-
Verschachtelte Klassen - Übersicht
Verschachtelte KlassenModifikator und TypKlasseBeschreibungstatic interfacestatic classstatic classstatic classVon Klasse geerbte verschachtelte Klassen/Schnittstellen Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler -
Feldübersicht
Von Klasse geerbte Felder Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungVeraltet.SingleCollectionMessaging(Morphium m, int pause) Veraltet.SingleCollectionMessaging(Morphium m, int pause, boolean processMultiple) Veraltet.SingleCollectionMessaging(Morphium m, int pause, boolean processMultiple, boolean multithreadded, int windowSize) Veraltet.SingleCollectionMessaging(Morphium m, int pause, boolean multithreadded, int windowSize) Veraltet.SingleCollectionMessaging(Morphium m, String queueName, int pause, boolean processMultiple) Veraltet.SingleCollectionMessaging(Morphium m, String queueName, int pause, boolean processMultiple, boolean multithreadded, int windowSize) Veraltet.SingleCollectionMessaging(Morphium m, String queueName, int pause, boolean processMultiple, boolean multithreadded, int windowSize, boolean useChangeStream) Veraltet.SingleCollectionMessaging(Morphium m, String queueName, int pause, boolean multithreadded, int windowSize) Veraltet.SingleCollectionMessaging(Morphium m, String queueName, int pause, boolean multithreadded, int windowSize, boolean useChangeStream) Veraltet. -
Methodenübersicht
Modifikator und TypMethodeBeschreibungvoidvoidclose()voidvoidintgetCollectionName(Msg msg) getCollectionName(String msgName) getDMCollectionName(String sender) intgetLockCollectionName(String topic) getLockCollectionName(T topic) longintgetPause()longintintintvoidvoidinit(Morphium m, MessagingSettings settings) booleanbooleanbooleanbooleanbooleanbooleanbooleanlockMessage(Msg m, String lockId) booleanlockMessage(Msg m, String lockId, Date delAt) voidvoidpauseTopicProcessing(String name) pause processing for certain messagesvoidqueueMessage(Msg m) voidvoidvoidremoveMessage(Msg m) voidrun()sendAndAwaitAnswers(T theMessage, int numberOfAnswers, long timeout) sendAndAwaitAnswers(T theMessage, int numberOfAnswers, long timeout, boolean throwExceptionOnTimeout) <T extends Msg>
voidsendAndAwaitAsync(T theMessage, long timeoutInMs, SingleCollectionMessaging.AsyncMessageCallback cb) Sends a message asynchronously and sends all incoming answers via callback.<T extends Msg>
TsendAndAwaitFirstAnswer(T theMessage, long timeoutInMs) <T extends Msg>
TsendAndAwaitFirstAnswer(T theMessage, long timeoutInMs, boolean throwExceptionOnTimeout) voidsendMessage(Msg m) voidsetAutoAnswer(boolean autoAnswer) setMultithreadded(boolean multithreadded) setPause(int pause) setPolling(boolean doPolling) Just for the understanding: if you do not use the changestream, messaging will poll for new mesages regularly (configured by the pause) setPolling(true) == setUseChangeStream(false)!!!!!!setProcessMultiple(boolean processMultiple) Veraltet.setQueueName(String queueName) setSenderId(String id) voidsetStatusInfoListenerEnabled(boolean statusInfoListenerEnabled) voidsetStatusInfoListenerName(String statusInfoListenerName) setUseChangeStream(boolean useChangeStream) setWindowSize(int windowSize) voidvoidunpauseTopicProcessing(String name) unpause processingintintVon Klasse geerbte Methoden Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yieldVon Klasse geerbte Methoden Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitVon Schnittstelle geerbte Methoden MorphiumMessaging
start
-
Konstruktordetails
-
SingleCollectionMessaging
public SingleCollectionMessaging() -
SingleCollectionMessaging
Veraltet.attaches to the default queue named "msg"- Parameter:
m- - morphiumpause- - pause between checksprocessMultiple- - deprecated, set windowSize to 1 if needed
-
SingleCollectionMessaging
Veraltet. -
SingleCollectionMessaging
Veraltet. -
SingleCollectionMessaging
@Deprecated public SingleCollectionMessaging(Morphium m, int pause, boolean processMultiple, boolean multithreadded, int windowSize) Veraltet. -
SingleCollectionMessaging
@Deprecated public SingleCollectionMessaging(Morphium m, int pause, boolean multithreadded, int windowSize) Veraltet. -
SingleCollectionMessaging
@Deprecated public SingleCollectionMessaging(Morphium m, String queueName, int pause, boolean processMultiple) Veraltet. -
SingleCollectionMessaging
@Deprecated public SingleCollectionMessaging(Morphium m, String queueName, int pause, boolean multithreadded, int windowSize) Veraltet. -
SingleCollectionMessaging
@Deprecated public SingleCollectionMessaging(Morphium m, String queueName, int pause, boolean processMultiple, boolean multithreadded, int windowSize) Veraltet. -
SingleCollectionMessaging
@Deprecated public SingleCollectionMessaging(Morphium m, String queueName, int pause, boolean processMultiple, boolean multithreadded, int windowSize, boolean useChangeStream) Veraltet. -
SingleCollectionMessaging
@Deprecated public SingleCollectionMessaging(Morphium m, String queueName, int pause, boolean multithreadded, int windowSize, boolean useChangeStream) Veraltet.- Parameter:
m- : the morphium instance to usequeueName- : The name of the messaging queuewindowSize- : how many messages to mark for processing at onceuseChangeStream- : whether to use changeStream (reccommended!) or not. Attention: changestream cannot be used on single mongodb instances or mongos sharded clusters - needs to be a replicaset! morphium automatically sets this value accordingly depending on your configuration
-
-
Methodendetails
-
init
- Angegeben von:
initin SchnittstelleMorphiumMessaging
-
init
- Angegeben von:
initin SchnittstelleMorphiumMessaging
-
getAlternativeMessagings
- Angegeben von:
getAlternativeMessagingsin SchnittstelleMorphiumMessaging
-
enableStatusInfoListener
public void enableStatusInfoListener()- Angegeben von:
enableStatusInfoListenerin SchnittstelleMorphiumMessaging
-
disableStatusInfoListener
public void disableStatusInfoListener()- Angegeben von:
disableStatusInfoListenerin SchnittstelleMorphiumMessaging
-
getStatusInfoListenerName
- Angegeben von:
getStatusInfoListenerNamein SchnittstelleMorphiumMessaging
-
setStatusInfoListenerName
- Angegeben von:
setStatusInfoListenerNamein SchnittstelleMorphiumMessaging
-
getProcessingCount
public int getProcessingCount()- Angegeben von:
getProcessingCountin SchnittstelleMorphiumMessaging
-
getInProgressCount
public int getInProgressCount()- Angegeben von:
getInProgressCountin SchnittstelleMorphiumMessaging
-
waitingForAnswersCount
public int waitingForAnswersCount()- Angegeben von:
waitingForAnswersCountin SchnittstelleMorphiumMessaging
-
waitingForAnswersTotalCount
public int waitingForAnswersTotalCount()- Angegeben von:
waitingForAnswersTotalCountin SchnittstelleMorphiumMessaging
-
isStatusInfoListenerEnabled
public boolean isStatusInfoListenerEnabled()- Angegeben von:
isStatusInfoListenerEnabledin SchnittstelleMorphiumMessaging
-
setStatusInfoListenerEnabled
public void setStatusInfoListenerEnabled(boolean statusInfoListenerEnabled) - Angegeben von:
setStatusInfoListenerEnabledin SchnittstelleMorphiumMessaging
-
getListenerNames
- Angegeben von:
getListenerNamesin SchnittstelleMorphiumMessaging
-
getThreadPoolStats
- Angegeben von:
getThreadPoolStatsin SchnittstelleMorphiumMessaging
-
getPendingMessagesCount
public long getPendingMessagesCount()- Angegeben von:
getPendingMessagesCountin SchnittstelleMorphiumMessaging
-
removeMessage
- Angegeben von:
removeMessagein SchnittstelleMorphiumMessaging
-
run
-
getAsyncMessagesPending
public int getAsyncMessagesPending()- Angegeben von:
getAsyncMessagesPendingin SchnittstelleMorphiumMessaging
-
pauseTopicProcessing
pause processing for certain messages- Angegeben von:
pauseTopicProcessingin SchnittstelleMorphiumMessaging- Parameter:
name-
-
getPausedTopics
- Angegeben von:
getPausedTopicsin SchnittstelleMorphiumMessaging
-
unpauseTopicProcessing
unpause processing- Angegeben von:
unpauseTopicProcessingin SchnittstelleMorphiumMessaging- Parameter:
name-- Gibt zurück:
- duration or null
-
triggerCheck
public void triggerCheck() -
getLock
-
getLockCollectionName
- Angegeben von:
getLockCollectionNamein SchnittstelleMorphiumMessaging
-
lockMessage
-
lockMessage
- Angegeben von:
lockMessagein SchnittstelleMorphiumMessaging
-
getCollectionName
- Angegeben von:
getCollectionNamein SchnittstelleMorphiumMessaging
-
getCollectionName
- Angegeben von:
getCollectionNamein SchnittstelleMorphiumMessaging
-
getCollectionName
- Angegeben von:
getCollectionNamein SchnittstelleMorphiumMessaging
-
addListenerForTopic
- Angegeben von:
addListenerForTopicin SchnittstelleMorphiumMessaging
-
removeListenerForTopic
- Angegeben von:
removeListenerForTopicin SchnittstelleMorphiumMessaging
-
getSenderId
- Angegeben von:
getSenderIdin SchnittstelleMorphiumMessaging
-
setSenderId
- Angegeben von:
setSenderIdin SchnittstelleMorphiumMessaging
-
getPause
public int getPause()- Angegeben von:
getPausein SchnittstelleMorphiumMessaging
-
setPause
- Angegeben von:
setPausein SchnittstelleMorphiumMessaging
-
isRunning
public boolean isRunning()- Angegeben von:
isRunningin SchnittstelleMorphiumMessaging
-
close
public void close()- Angegeben von:
closein SchnittstelleAutoCloseable- Angegeben von:
closein SchnittstelleCloseable- Angegeben von:
closein SchnittstelleMorphiumMessaging
-
terminate
public void terminate()- Angegeben von:
terminatein SchnittstelleMorphiumMessaging
-
queueMessage
- Angegeben von:
queueMessagein SchnittstelleMorphiumMessaging
-
sendMessage
- Angegeben von:
sendMessagein SchnittstelleMorphiumMessaging
-
getNumberOfMessages
public long getNumberOfMessages()- Angegeben von:
getNumberOfMessagesin SchnittstelleMorphiumMessaging
-
sendMessageToSelf
- Angegeben von:
sendMessageToSelfin SchnittstelleMorphiumMessaging
-
queueMessagetoSelf
- Angegeben von:
queueMessagetoSelfin SchnittstelleMorphiumMessaging
-
isAutoAnswer
public boolean isAutoAnswer()- Angegeben von:
isAutoAnswerin SchnittstelleMorphiumMessaging
-
setAutoAnswer
- Angegeben von:
setAutoAnswerin SchnittstelleMorphiumMessaging
-
onShutdown
- Angegeben von:
onShutdownin SchnittstelleShutdownListener
-
sendAndAwaitFirstAnswer
- Angegeben von:
sendAndAwaitFirstAnswerin SchnittstelleMorphiumMessaging
-
sendAndAwaitAsync
public <T extends Msg> void sendAndAwaitAsync(T theMessage, long timeoutInMs, SingleCollectionMessaging.AsyncMessageCallback cb) Sends a message asynchronously and sends all incoming answers via callback. If sent message is exclusive, only one answer will be processed, otherwise all incoming answers up to timeout will be processed.- Angegeben von:
sendAndAwaitAsyncin SchnittstelleMorphiumMessaging
-
sendAndAwaitFirstAnswer
public <T extends Msg> T sendAndAwaitFirstAnswer(T theMessage, long timeoutInMs, boolean throwExceptionOnTimeout) - Angegeben von:
sendAndAwaitFirstAnswerin SchnittstelleMorphiumMessaging
-
sendAndAwaitAnswers
- Angegeben von:
sendAndAwaitAnswersin SchnittstelleMorphiumMessaging
-
sendAndAwaitAnswers
public <T extends Msg> List<T> sendAndAwaitAnswers(T theMessage, int numberOfAnswers, long timeout, boolean throwExceptionOnTimeout) - Angegeben von:
sendAndAwaitAnswersin SchnittstelleMorphiumMessaging
-
isProcessMultiple
public boolean isProcessMultiple()- Angegeben von:
isProcessMultiplein SchnittstelleMorphiumMessaging
-
setProcessMultiple
Veraltet.- Angegeben von:
setProcessMultiplein SchnittstelleMorphiumMessaging
-
getQueueName
- Angegeben von:
getQueueNamein SchnittstelleMorphiumMessaging
-
setQueueName
- Angegeben von:
setQueueNamein SchnittstelleMorphiumMessaging
-
isMultithreadded
public boolean isMultithreadded()- Angegeben von:
isMultithreaddedin SchnittstelleMorphiumMessaging
-
setMultithreadded
- Angegeben von:
setMultithreaddedin SchnittstelleMorphiumMessaging
-
getWindowSize
public int getWindowSize()- Angegeben von:
getWindowSizein SchnittstelleMorphiumMessaging
-
setWindowSize
- Angegeben von:
setWindowSizein SchnittstelleMorphiumMessaging
-
isUseChangeStream
public boolean isUseChangeStream()- Angegeben von:
isUseChangeStreamin SchnittstelleMorphiumMessaging
-
getRunningTasks
public int getRunningTasks()- Angegeben von:
getRunningTasksin SchnittstelleMorphiumMessaging
-
getMorphium
- Angegeben von:
getMorphiumin SchnittstelleMorphiumMessaging
-
setPolling
Just for the understanding: if you do not use the changestream, messaging will poll for new mesages regularly (configured by the pause) setPolling(true) == setUseChangeStream(false)!!!!!!- Angegeben von:
setPollingin SchnittstelleMorphiumMessaging
-
setUseChangeStream
- Angegeben von:
setUseChangeStreamin SchnittstelleMorphiumMessaging
-
getLockCollectionName
- Angegeben von:
getLockCollectionNamein SchnittstelleMorphiumMessaging
-
getLockCollectionName
- Angegeben von:
getLockCollectionNamein SchnittstelleMorphiumMessaging
-
getDMCollectionName
- Angegeben von:
getDMCollectionNamein SchnittstelleMorphiumMessaging
-