Klasse Messaging

java.lang.Object
java.lang.Thread
de.caluga.morphium.messaging.Messaging
Alle implementierten Schnittstellen:
ShutdownListener, Runnable

public class Messaging extends Thread implements ShutdownListener
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

  • Konstruktordetails

    • Messaging

      public Messaging(Morphium m, int pause, boolean processMultiple)
      attaches to the default queue named "msg"
      Parameter:
      m - - morphium
      pause - - pause between checks
      processMultiple - - process multiple messages at once, if false, only ony by one
    • Messaging

      public Messaging(Morphium m)
    • Messaging

      public Messaging(Morphium m, int pause, boolean processMultiple, boolean multithreadded, int windowSize)
    • Messaging

      public Messaging(Morphium m, String queueName, int pause, boolean processMultiple)
    • Messaging

      public Messaging(Morphium m, String queueName, int pause, boolean processMultiple, boolean multithreadded, int windowSize)
    • Messaging

      public Messaging(Morphium m, String queueName, int pause, boolean processMultiple, boolean multithreadded, int windowSize, boolean useChangeStream)
    • 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

      public String getStatusInfoListenerName()
    • setStatusInfoListenerName

      public void setStatusInfoListenerName(String statusInfoListenerName)
    • isStatusInfoListenerEnabled

      public boolean isStatusInfoListenerEnabled()
    • setStatusInfoListenerEnabled

      public void setStatusInfoListenerEnabled(boolean statusInfoListenerEnabled)
    • getListenerNames

      public Map<String,List<String>> getListenerNames()
    • getGlobalListeners

      public List<String> getGlobalListeners()
    • getThreadPoolStats

      public Map<String,Long> getThreadPoolStats()
    • getPendingMessagesCount

      public long getPendingMessagesCount()
    • removeMessage

      public void removeMessage(Msg m)
    • run

      public void run()
      Angegeben von:
      run in Schnittstelle Runnable
      Setzt außer Kraft:
      run in Klasse Thread
    • pauseProcessingOfMessagesNamed

      public void pauseProcessingOfMessagesNamed(String name)
      pause processing for certain messages
      Parameter:
      name -
    • unpauseProcessingOfMessagesNamed

      public Long unpauseProcessingOfMessagesNamed(String name)
      unpause processing
      Parameter:
      name -
      Gibt zurück:
      duration or null
    • findAndProcessPendingMessages

      public void findAndProcessPendingMessages(String name)
    • getCollectionName

      public String getCollectionName()
    • addListenerForMessageNamed

      public void addListenerForMessageNamed(String n, MessageListener l)
    • removeListenerForMessageNamed

      public void removeListenerForMessageNamed(String n, MessageListener l)
    • getSenderId

      public String getSenderId()
    • setSenderId

      public Messaging setSenderId(String id)
    • getPause

      public int getPause()
    • setPause

      public Messaging setPause(int pause)
    • isRunning

      public boolean isRunning()
    • terminate

      public void terminate()
    • addMessageListener

      public void addMessageListener(MessageListener l)
    • removeMessageListener

      public void removeMessageListener(MessageListener l)
    • queueMessage

      public void queueMessage(Msg m)
    • start

      public void start()
      Setzt außer Kraft:
      start in Klasse Thread
    • sendMessage

      public void sendMessage(Msg m)
    • getNumberOfMessages

      public long getNumberOfMessages()
    • sendMessageToSelf

      public void sendMessageToSelf(Msg m)
    • queueMessagetoSelf

      public void queueMessagetoSelf(Msg m)
    • isAutoAnswer

      public boolean isAutoAnswer()
    • setAutoAnswer

      public Messaging setAutoAnswer(boolean autoAnswer)
    • onShutdown

      public void onShutdown(Morphium m)
      Angegeben von:
      onShutdown in Schnittstelle ShutdownListener
    • sendAndAwaitFirstAnswer

      public <T extends Msg> T sendAndAwaitFirstAnswer(T theMessage, long timeoutInMs)
    • sendAndAwaitFirstAnswer

      public <T extends Msg> T sendAndAwaitFirstAnswer(T theMessage, long timeoutInMs, boolean throwExceptionOnTimeout)
    • sendAndAwaitAnswers

      public <T extends Msg> List<T> sendAndAwaitAnswers(T theMessage, int numberOfAnswers, long timeout)
    • sendAndAwaitAnswers

      public <T extends Msg> List<T> sendAndAwaitAnswers(T theMessage, int numberOfAnswers, long timeout, boolean throwExceptionOnTimeout)
    • isProcessMultiple

      public boolean isProcessMultiple()
    • setProcessMultiple

      public Messaging setProcessMultiple(boolean processMultiple)
    • getQueueName

      public String getQueueName()
    • setQueueName

      public Messaging setQueueName(String queueName)
    • isMultithreadded

      public boolean isMultithreadded()
    • setMultithreadded

      public Messaging setMultithreadded(boolean multithreadded)
    • getWindowSize

      public int getWindowSize()
    • setWindowSize

      public Messaging setWindowSize(int windowSize)
    • 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

      public Messaging.ReceiveAnswers getReceiveAnswers()
    • setReceiveAnswers

      public void setReceiveAnswers(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!
    • isUseChangeStream

      public boolean isUseChangeStream()
    • getRunningTasks

      public int getRunningTasks()
    • setUseChangeStream

      public Messaging setUseChangeStream(boolean useChangeStream)