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 classstatic classVon Klasse geerbte verschachtelte Klassen/Schnittstellen java.lang.Thread
Thread.Builder, 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) -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoidvoidvoidvoidintlongintgetPause()longintintintbooleanbooleanbooleanbooleanbooleanbooleanbooleanlockMessage(Msg m, String lockId) booleanlockMessage(Msg m, String lockId, Date delAt) voidvoidpause 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) 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) setQueueName(String queueName) setSenderId(String id) voidsetStatusInfoListenerEnabled(boolean statusInfoListenerEnabled) voidsetStatusInfoListenerName(String statusInfoListenerName) setUseChangeStream(boolean useChangeStream) setWindowSize(int windowSize) voidvoidunpause processingintintVon 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, start, 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
-
-
Methodendetails
-
getAlternativeMessagings
-
enableStatusInfoListener
public void enableStatusInfoListener() -
disableStatusInfoListener
public void disableStatusInfoListener() -
getStatusInfoListenerName
-
setStatusInfoListenerName
-
getProcessingCount
public int getProcessingCount() -
getInProgressCount
public int getInProgressCount() -
waitingForAnswersCount
public int waitingForAnswersCount() -
waitingForAnswersTotalCount
public int waitingForAnswersTotalCount() -
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-
-
getPausedMessageNames
-
unpauseProcessingOfMessagesNamed
unpause processing- Parameter:
name-- Gibt zurück:
- duration or null
-
triggerCheck
public void triggerCheck() -
getLock
-
getLockCollectionName
-
lockMessage
-
lockMessage
-
getCollectionName
-
addListenerForMessageNamed
-
removeListenerForMessageNamed
-
getSenderId
-
setSenderId
-
getPause
public int getPause() -
setPause
-
isRunning
public boolean isRunning() -
terminate
public void terminate() -
addMessageListener
-
removeMessageListener
-
queueMessage
-
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
-
isUseChangeStream
public boolean isUseChangeStream() -
getRunningTasks
public int getRunningTasks() -
getMorphium
-
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)!!!!!! -
setUseChangeStream
-