Package de.caluga.morphium.messaging
Klasse Messaging
java.lang.Object
java.lang.Thread
de.caluga.morphium.messaging.Messaging
- Alle implementierten Schnittstellen:
ShutdownListener,Runnable
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 KlassenModifizierer und TypKlasseBeschreibungstatic classstatic enumstatic classVon Klasse geerbte verschachtelte Klassen/Schnittstellen java.lang.Thread
Thread.BuilderPREVIEW, Thread.State, Thread.UncaughtExceptionHandler -
Feldübersicht
Von Klasse geerbte Felder java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungattaches to the default queue named "msg"Messaging(Morphium m, String queueName, int pause, boolean processMultiple, boolean multithreadded, int windowSize) Messaging(Morphium m, String queueName, int pause, boolean processMultiple, boolean multithreadded, int windowSize, boolean useChangeStream) Messaging(Morphium m, String queueName, int pause, boolean processMultiple, boolean multithreadded, int windowSize, boolean useChangeStream, Messaging.ReceiveAnswers recieveAnswers) -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoidvoidvoidvoidvoidlongintgetPause()longintintbooleanbooleanbooleanbooleanReceive answers=false, onMessage is not called, when answers come in if true, onMessage is called for all answers this is not affecting the sendAndWaitFor-Methods!booleanbooleanbooleanvoidvoidpause processing for certain messagesvoidqueueMessage(Msg m) voidvoidvoidremoveMessage(Msg m) voidvoidrun()sendAndAwaitAnswers(T theMessage, int numberOfAnswers, long timeout) sendAndAwaitAnswers(T theMessage, int numberOfAnswers, long timeout, boolean throwExceptionOnTimeout) <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) setProcessMultiple(boolean processMultiple) setQueueName(String queueName) voidsetReceiveAnswers(Messaging.ReceiveAnswers receiveAnswers) Receive answers=false, onMessage is not called, when answers come in if true, onMessage is called for all answers this is not affecting the sendAndWaitFor-Methods!setSenderId(String id) voidsetStatusInfoListenerEnabled(boolean statusInfoListenerEnabled) voidsetStatusInfoListenerName(String statusInfoListenerName) setUseChangeStream(boolean useChangeStream) setWindowSize(int windowSize) voidstart()voidunpause processingVon Klasse geerbte Methoden java.lang.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, startVirtualThread, stop, suspend, threadId, toString, yield
-
Konstruktordetails
-
Messaging
attaches to the default queue named "msg"- Parameter:
m- - morphiumpause- - pause between checksprocessMultiple- - process multiple messages at once, if false, only ony by one
-
Messaging
-
Messaging
public Messaging(Morphium m, int pause, boolean processMultiple, boolean multithreadded, int windowSize) -
Messaging
-
Messaging
-
Messaging
-
Messaging
public Messaging(Morphium m, String queueName, int pause, boolean processMultiple, boolean multithreadded, int windowSize, boolean useChangeStream, Messaging.ReceiveAnswers recieveAnswers)
-
-
Methodendetails
-
enableStatusInfoListener
public void enableStatusInfoListener() -
disableStatusInfoListener
public void disableStatusInfoListener() -
getStatusInfoListenerName
-
setStatusInfoListenerName
-
isStatusInfoListenerEnabled
public boolean isStatusInfoListenerEnabled() -
setStatusInfoListenerEnabled
public void setStatusInfoListenerEnabled(boolean statusInfoListenerEnabled) -
getListenerNames
-
getGlobalListeners
-
getThreadPoolStats
-
getPendingMessagesCount
public long getPendingMessagesCount() -
removeMessage
-
run
public void run() -
pauseProcessingOfMessagesNamed
pause processing for certain messages- Parameter:
name-
-
unpauseProcessingOfMessagesNamed
unpause processing- Parameter:
name-- Gibt zurück:
- duration or null
-
findAndProcessPendingMessages
-
getCollectionName
-
addListenerForMessageNamed
-
removeListenerForMessageNamed
-
getSenderId
-
setSenderId
-
getPause
public int getPause() -
setPause
-
isRunning
public boolean isRunning() -
terminate
public void terminate() -
addMessageListener
-
removeMessageListener
-
queueMessage
-
start
public void start() -
sendMessage
-
getNumberOfMessages
public long getNumberOfMessages() -
sendMessageToSelf
-
queueMessagetoSelf
-
isAutoAnswer
public boolean isAutoAnswer() -
setAutoAnswer
-
onShutdown
- Angegeben von:
onShutdownin SchnittstelleShutdownListener
-
sendAndAwaitFirstAnswer
-
sendAndAwaitFirstAnswer
public <T extends Msg> T sendAndAwaitFirstAnswer(T theMessage, long timeoutInMs, boolean throwExceptionOnTimeout) -
sendAndAwaitAnswers
-
sendAndAwaitAnswers
-
isProcessMultiple
public boolean isProcessMultiple() -
setProcessMultiple
-
getQueueName
-
setQueueName
-
isMultithreadded
public boolean isMultithreadded() -
setMultithreadded
-
getWindowSize
public int getWindowSize() -
setWindowSize
-
isReceiveAnswers
public boolean isReceiveAnswers()Receive answers=false, onMessage is not called, when answers come in if true, onMessage is called for all answers this is not affecting the sendAndWaitFor-Methods!- Gibt zurück:
-
getReceiveAnswers
-
setReceiveAnswers
Receive answers=false, onMessage is not called, when answers come in if true, onMessage is called for all answers this is not affecting the sendAndWaitFor-Methods! -
isUseChangeStream
public boolean isUseChangeStream() -
getRunningTasks
public int getRunningTasks() -
setUseChangeStream
-