Package de.willuhn.jameica.messaging
Class NamedConcurrentQueue
java.lang.Object
de.willuhn.jameica.messaging.NamedConcurrentQueue
- All Implemented Interfaces:
MessagingQueue
Implementierung einer benamten Queue, die jedoch mittels ThreadPoolExecutor
multi-threaded arbeitet.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Schliesst die Queue und sendet alle noch offenen Nachrichten.voidflush()Sendet alle noch offenen Nachrichten.intLiefert die aktuelle Anzahl noch zuzustellender Nachrichten.voidqueueMessage(Message message) Stellt eine Nachricht in die Queue.voidregisterMessageConsumer(MessageConsumer consumer) Registriert einen Nachrichten-Consumer manuell in der Queue.voidsendMessage(Message message) Sendet eine Nachricht asynchron an alle Nachrichtenverbraucher der Queue.voidsendSyncMessage(Message message) Sendet eine Nachricht synchron an alle Nachrichtenverbraucher der Queue.voidunRegisterMessageConsumer(MessageConsumer consumer) Entfernt einen Nachrichten-Consumer aus der Queue.
-
Constructor Details
-
NamedConcurrentQueue
ct.- Parameters:
name- der Name der Queue.
-
-
Method Details
-
sendMessage
Description copied from interface:MessagingQueueSendet eine Nachricht asynchron an alle Nachrichtenverbraucher der Queue.- Specified by:
sendMessagein interfaceMessagingQueue- Parameters:
message- die zu versendende Nachricht.- See Also:
-
sendSyncMessage
Description copied from interface:MessagingQueueSendet eine Nachricht synchron an alle Nachrichtenverbraucher der Queue.- Specified by:
sendSyncMessagein interfaceMessagingQueue- Parameters:
message- die zu versendende Nachricht.- See Also:
-
queueMessage
Description copied from interface:MessagingQueueStellt eine Nachricht in die Queue. Dort bleibt sie solange, bis ein Consumer dafuer vorhanden ist.- Specified by:
queueMessagein interfaceMessagingQueue- Parameters:
message- die zu versendende Nachricht.- See Also:
-
getQueueSize
public int getQueueSize()Description copied from interface:MessagingQueueLiefert die aktuelle Anzahl noch zuzustellender Nachrichten.- Specified by:
getQueueSizein interfaceMessagingQueue- Returns:
- aktuelle Queue-Groesse.
- See Also:
-
registerMessageConsumer
Description copied from interface:MessagingQueueRegistriert einen Nachrichten-Consumer manuell in der Queue.- Specified by:
registerMessageConsumerin interfaceMessagingQueue- Parameters:
consumer- zu registrierender Consumer.- See Also:
-
unRegisterMessageConsumer
Description copied from interface:MessagingQueueEntfernt einen Nachrichten-Consumer aus der Queue.- Specified by:
unRegisterMessageConsumerin interfaceMessagingQueue- Parameters:
consumer- zu entfernender Consumer.- See Also:
-
close
public void close()Description copied from interface:MessagingQueueSchliesst die Queue und sendet alle noch offenen Nachrichten.- Specified by:
closein interfaceMessagingQueue- See Also:
-
flush
public void flush()Description copied from interface:MessagingQueueSendet alle noch offenen Nachrichten. Die Funktion kehrt erst zurueck, nachdem alle Nachrichten zugestellt wurden.- Specified by:
flushin interfaceMessagingQueue- See Also:
-